Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Entre para seguir isso  
Luxfero

Ajuda PIC e PIC SIMULATOR IDE

Recommended Posts

Olá se alguem souber me ajudar, pois eu tentei exaustivamente descobrir o que esta acotecento e nada..... bom o problema é o seguinte em algumas linha ele troca GPIO por TRISIO, se alguem ja passou por isso e sabe o que esta errado valeu... o pic é o 12f629...


start
BCF STATUS,RP0 ;Bank 0
;CLRF GPIO ;Init GPIO
MOVLW 07h ;Set GP<2:0> to
MOVWF CMCON ;digital IO
BSF STATUS,RP0 ;Bank 1




BCF TRISIO,1; pino 6 output
BCF TRISIO,0; pino 7 output

BSF GPIO,1; nessa parte do programa ele troca por TRISIO

programa
BTFSS GPIO,2; aqui tb ele troca por TRISIO
GOTO programa;
BSF GPIO,1;

ligado
BTFSS GPIO,2; aqui tb ele troca por TRISIO
GOTO ligado;
BCF GPIO,1;
GOTO programa;


END

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fácil, você iniciou o TRISIO, porém nao retornou ao bank0, tente inserir essa linha logo depois de iniciar o trisio:

 BCF STATUS,RP0  ;volta ao bank0                              

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Obrigado pela resposta, ainda nao testei, mas tenho uma duvida por que tenho que voltar para o bank 0 como funciona isso?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Simples, os registradores do PIC estão espalhados pela RAM o problema é que a RAM é dividida em blocos chamados de banks, onde cada bank possui um numero igual de bytes, e possui um certo numero de registradores, a questão é que o TRISIO e o GPIO estão no mesmo endereço de memoria mas em bancos diferentes, por isso toda vez que você passa ao Bank 1 e acerta o TRISIO, se você for escrever no GPIO sem voltar ao bank0 antes ,o PIC vai entender que você quer escrever no TRISIO (que é o que esta acontecendo com você).

    Se quiser mais informações sugiro uma lida no datasheet do PIC12F629 na seção memory organization, que explica tudo.

    OBS.:

    -Para ir ao Bank0 use : BCF STATUS,RP0

    -Para ir ao Bank1 use : BSF STATUS,RP0.

    Abs.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • puxa Felipe muito obrigado mesmo, eu ja tinha visto essa parte no datasheet mas como os endereços de memoria eram diferentes nao tinha pensado por esse lado, mas agora tudo ficou muito claro Obrigado.

    Outra duvida, agora o programa funciona ok no simulator, mas depois que eu gravo ele nao funciona na realidade...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Como disse o saudoso mestre paulo, pergunto como esta a diretiva config?-

    -Configurou o oscilador?

    -Configurou o master clear?

    Veja isso ok?

    Abs.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • boiando total, onde eu configuro isso? bom eu pesquisei a respeito e cheguei a resposta de que eu tinha que ter anotado o numero antes de gravar no pic pela primeira vez, mas eu ja gravei e perdi esse numero, e agora? alguem tem alguma ideia?

    Bom ainda estou sem saber, de qualquer forma eu consegui fazer "funcionar" usando 3824h no ICprog e essa config word __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT

    nao funcionou como eu queria, no entando uma coisa estranha esta acontecendo quando voce aproxima qualquer objeto condutor o LED liga, e voce afasta ele desliga.

    Editado por Bcpetronzio
    Unir Post seguidos em menos de 24 horas, use a opção editar

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Posta o circuito que voce montou, com todos os componentes para a gente poder ajudar mais.

    Paulo

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • aqui tem um video no youtube que eu coloquei da pra ver o circuito mais ou menos

    só tem dois leds e dois resistores e fios nada mais

    sera que deu para ver? ou devo tentar dar up em algumas fotos?

    Editado por Luxfero
    mais informaçoes

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Não dá para ver exatamente o circuito utilizado...

    Dá para voce colocar o desenho do esquema eletrônico, contendo TODOS os componentes que voce usou, e todas as suas interligações ????

    Paulo

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • circuitogy.jpg

    picpr.jpg

    Editado por Luxfero
    arrumando link

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • e agora com as imagens alguma ideia?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Agora sim !

    Coloque um capacitor eletrolítico de 10uF / 16V em paralelo com um capacitor de 100nf, de preferência cerâmico, ligado BEM PRÓXIMO dos pinos de alimentação e de terra do PIC, assim garante que o oscilador interno funcione bem, veja se resolve, ok ?

    Paulo

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Coloque um resistor de 4k7 entre o pino 4 e o terra. Deve ser isto, pois me parece que voce está mantendo essa entrada flutuando, tem de abaixar a impedância.

    Paulo

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×