Página 1 de 1

Rotinas de Delay (foi de grande ajuda pra mim)

MensagemEnviado: 26 Mai 2007 19:17
por icaro51
Pessoal nao sei se estou sendo idiota de por isso aqui mas eu nao conhecia esse tipo de macro e me ajudou muito na criacao de meu projeto, como quando eu esta procurando algumas coisas no forum eu me deparei com varias questoes sobre delay eu resolvi colocar.
Essa macro foi calculada para 4mhz, nao sei dizer se e realmente precisa para qualquer valor mas funcionou legal comigo.
Espero que ajude mais alguem.



WAIT:MACRO TIME
;Delay for TIME µs.
;Variable time must be in multiples of 5µs.
MOVLW (TIME/5)-1 ;1µs
MOVWF TMP0 ;1µs
CALL WAIT5U ;2µs
ENDM

;
; SEU PROGRAMA
; TEMPO em µs multipo de 5µs (exemplo abaixo)

WAIT .500 ; delay de 500µs


WAIT5U:
;This takes 5µS to complete
NOP ;1µs
NOP ;1µs
DECFSZ TMP0,F ;1µs or 2µs
GOTO WAIT5U ;2µs
RETLW 0 ;2µs
; --------------------------------------------------------


(rotina retirada do site da dallas)

MensagemEnviado: 27 Mai 2007 11:19
por phophollety
Sempre ajuda a quem está começando agora, no começo entender os laços de repetição, ainda mais para quem nunca programaou em nível de práticamente hardware não é lá muito fácil, sua contribuição é bem vinda!