Question sur la prog pour un pic (temporisation) - ASM - Programmation
Marsh Posté le 19-02-2006 à 10:27:19
En effet, ta boucle est beaucoup trop courte
le DECFSZ prend 1 cycle d'horloge
le GOTO prend 2 cycles d'horloge
tu fais ta boucle de temporisation 0x10 fois, c'est-à-dire 16 fois, elle prend donc 16x3=48 cycles
Si ton PIC tourne à 4 MHz, il me semble qu'il faut 4 oscillations pour un cycle horloge, donc qu'un cycle d'horloge vaut 1/(4 MHz / 4) = 1/1000000 = 1µs (microseconde)
il faut donc imbriquer des boucles... du style
|
ça fait 256x256x48 tours de boucles, en prenant grosso modo 3 cycles d'horloge par tour de boucle (en fait c'est un peu plus, je te laisse faire le calcul exact), à 4MHz ça doit faire une tempo d'à peu près 1 seconde
par contre je comprends pas le "temp1 equ 1 "
Marsh Posté le 04-02-2006 à 18:28:53
Bonjour ,
je débute dans le pic (16f84), en ce moment je suis bloquer sur un programme qui doit compter sur afficheur 7 segments.J'ai commencer par 3 chiffres.voila le programme:
list p=16F84
list c=132
PORTB EQU 6
TRISB EQU 6
STATUS EQU 3
temp1 equ 1
temp equ 1
ORG 0
BSF STATUS,5
CLRF TRISB
BCF STATUS,5
Temp1 movlw 0x10
MOVWF temp
boucle DECFSZ temp,f
GOTO boucle
RETURN
Principal MOVLW d'102'
MOVWF PORTB
call temp1
MOVLW d'109'
MOVWF PORTB
call temp1
MOVLW d'125'
MOVWF PORTB
Sleep
END
je pense que c la temporisation qui doit etre mauvaise.il m'affiche la dernier valeur tout suite ,même en modifiant la valeur de temp.aidez moi please
merci d'avance,
aurevoir