[^^!2] Tempo et PIC 16F628A [Résolu]

nono7380 11 Messages postés samedi 25 avril 2009Date d'inscription 16 octobre 2010 Dernière intervention - 7 nov. 2009 à 18:53 - Dernière réponse : Fpaul54 3 Messages postés mardi 28 octobre 2003Date d'inscription 30 décembre 2009 Dernière intervention
- 30 déc. 2009 à 18:47
Bonjour,
je cherche a faire une tempo de +- 0,5 sec. Comment dois-je faire?
J'ai fait ceci avec le cours de bigonoff mais çà marche po.

;*********************************************************************
; DECLARATIONS DE VARIABLES *
;*********************************************************************
CBLOCK 0x00C ; début de la zone variables
cmpt1 : 1 ; compteur de boucles 1
cmpt2 : 1 ; compteur de boucles 2
cmpt3 : 1 ; compteur de boucles 3
ENDC ; Fin de la zone

;*********************************************************************
; TEMPORISATION *
;*********************************************************************

tempo
movlw 2 ; pour 2 boucles
movwf cmpt3 ; initialiser compteur3
boucle3
clrf cmpt2 ; PB effacer compteur2
boucle2
clrf cmpt1 ; effacer compteur1
boucle1
nop ; perdre 1 cycle *256 *256 *2
decfsz cmpt1,f ; décrémenter compteur1
goto boucle1 ; si pas 0, boucler
decfsz cmpt2 , f ;PB si 0, décrémenter compteur 2 goto boucle2 ; si cmpt2 pas 0, recommencer boucle1
decfsz cmpt3 , f ; si 0, décrémenter compteur 3
goto boucle3 ; si cmpt3 pas 0, recommencer boucle2
return ; retour de la sous-routine
end


En rouge, ce sont les breakpoints donné a la compilation.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
nono7380 11 Messages postés samedi 25 avril 2009Date d'inscription 16 octobre 2010 Dernière intervention - 10 nov. 2009 à 16:20
3
Merci
apparement, je dois être a un niveau supérieur au vôtre vu que je n'ai po de réponse.

Merci nono7380 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de nono7380
Meilleure réponse
Fpaul54 3 Messages postés mardi 28 octobre 2003Date d'inscription 30 décembre 2009 Dernière intervention - 30 déc. 2009 à 18:47
3
Merci
PaulFjujo

voila un sensemble de SP delai

;delais4M.inc pour Fquartz=4Mhz
;last update: 28 mars 2003
;count1 count2 count3 en bank0 pour delay routines
;delay_RS special pour routine d'attente bit 4800 Bauds
;delay : 5(count3-1)+1282(count2-1)+327684(count1-1)+6
;delay_25us delay_100us delay_200us
;delay_1ms delay2_5ms delay_10ms delay_100ms delay_500ms
;delay_1s delay_10s
;---------------------
;special pour routine d'attente bit 4800 Bauds
delay_RS
MOVLW .67 ; .67 pour 4800 bauds
MOVWF count1 ; 1000000/4800=208µS
DECFSZ count1,F ; 1 cycle si pas de saut
GOTO $-1 ; 2cycles
Return ; 67* 3*1=201µS
;------------------------

delay_25us movlw 0x01
movwf count1
movlw 0x01
movwf count2
movlw 0x05
movwf count3
goto delay1

delay_100us movlw 0x01
movwf count1
movlw 0x01
movwf count2
movlw 20
movwf count3
goto delay1

delay_200us movlw 0x01
movwf count1
movlw 0x01
movwf count2
movlw 40
movwf count3
goto delay1

delay_1ms movlw 0x01
movwf count1
movlw 0x01
movwf count2
movlw 200
movwf count3
goto delay1

delay_2_5ms movlw 0x01
movwf count1
movlw 0x02
movwf count2
movlw 243
movwf count3
goto delay1


delay_10ms movlw 0x01
movwf count1
movlw 8
movwf count2
movlw 205
movwf count3
goto delay1

delay_100ms movlw 0x01
movwf count1
movlw 79
movwf count2
movlw 0x01
movwf count3
goto delay1

delay_500ms movlw 2
movwf count1
movlw 135
movwf count2
movlw 106
movwf count3
goto delay1

delay_1s movlw 4
movwf count1
movlw 14
movwf count2
movlw 56
movwf count3
goto delay1

delay_2_5s movlw 8
movwf count1
movlw 161
movwf count2
movlw 218
movwf count3
goto delay1

delay_10s movlw 31
movwf count1
movlw 133
movwf count2
movlw 51
movwf count3
goto delay1

delay1 decfsz count3,f
goto $-1
decfsz count2,f
goto $-3
decfsz count1,f
goto $-5
return

Merci Fpaul54 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de Fpaul54

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.