Página 1 de 1

problema com meu código

MensagemEnviado: 02 Out 2011 20:48
por vanessa
Olá a todos!

Alguém pode me ajudar a encontrar o que há de errado com o meu código?

O circuito é muito simples, tenho um led em GP0, um led em GP1 e um interruptor em GP3.

O que ele deveria fazer: Eu quero que, ao fechar o interruptor, um dos leds apague e o outro acenda, e ao abrir o interruptor, um acenda e o outro apague.

O problema parece estar na linha que diz: "btfss GPIO,GP3"
Pois se o interruptor esta aberto o led que esta em GP0 inicia aceso e fechando-se o interruptor, eu consigo o meu intento, ou seja o led GP0 apaga e acende GP1, mas a partir dai o programa nao responde mais ao estado do interruptor.

Se eu troco a linha por "btfsc GPIO,GP3" iniciando tambem com o interruptor aberto, é o led GP1 inicia aceso. E fechando o interruptor, o led GP0 acende e GP1 apaga, aí o programa nao responde mais ao estado do interruptor.

Muito obrigada


;;;***********************************
list p=12F675
#include <p12F675.inc>

errorlevel -302 ; no warnings about registers not in bank 0


;***** CONFIGURATION
; ext reset, no code or data protect, no brownout detect,
; no watchdog, power-up timer, 4Mhz int clock
__CONFIG _BODEN_ON & _MCLRE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT



;**********************************************************************
RESET CODE 0x0000
call 0x03FF
banksel OSCCAL
movwf OSCCAL

; initialisacao
movlw b'111100'
banksel TRISIO
movwf TRISIO

;;;*****************************
poopo

movlw b'111100'
banksel GPIO
movwf GPIO
goto poopa
;;;;****************************

poopa
nop
btfss GPIO,GP3
goto poopu
goto poopi



poopu
;;;GP0
movlw b'111110'
banksel GPIO
movwf GPIO
goto poopa


poopi
;;;GP1
movlw b'111101'
banksel GPIO
movwf GPIO
goto poopa


END

MensagemEnviado: 03 Out 2011 00:50
por _blackmore_
nao tem loop?

MensagemEnviado: 03 Out 2011 18:45
por renatokodaira
Acho que voce precisa tambem configurar os registradores CMCON e ANSEL, senao as portas nao funcionam como digitais.

MensagemEnviado: 04 Out 2011 16:05
por vanessa
;;;;;recorte do codigo

poopa
btfss GPIO,GP3
goto poopu
goto poopi

poopu
;codigo aqui
goto poopa

poopi
;codigo aqui
goto poopa

;;;;final do recorte

Todos os dois labels de baixo sempre retornam para o label de cima, isso pode ser chamado de loop? funciona igual?

MensagemEnviado: 06 Out 2011 14:21
por vanessa
fiquei muito feliz porque achei o que estava causando o problema!

O codigo estava correto

O que nao tava correto era a montagem do circuito.

No afã de criar um codigo meu, que funcionasse, eu nao parei para analisar o circuito.

Assim eu demorei um bocado para perceber que eu havia montado o circuito meio sem pensar no que estava fazendo, e fiquei dias tentando fazer o meu codigo funcionar em cima de um circuito que nao tinha nada a ver.

Eu estava usando o grd no lugar do pwr, alem de quase nada funcionar, por causa disso, era preciso colocar GPIO = b'111101' para setar GP1 hight!!!! achei que estava no mundo bizarro! (pra quem assistiu a liga da justiça)

É isso, obrigada a todos até mais!

MensagemEnviado: 06 Out 2011 14:43
por fabim
a vanessa me fez rir agora !!!! kkk

imagino os codigos dela!!!

hello_kitty:
btfss registrador.2
goto gatinho
goto hi_hi_puff_yahmi


btfss gpio.3
goto hello_kitty
goto barbie

To só brincando em vanessa !!!

MensagemEnviado: 06 Out 2011 18:31
por vanessa
Pode brincar a vontade. Eu não vou ficar brava.

Eu gosto de usar palavras que eu tenho certeza que não vão se confundir com os códigos nativos do programa.