Bonjour
je suis un debutant dans la programmation des pic et mon compilateur picbasic n'est pas efficasse.
je veux que mon programme suit cet enchainement
les entrés A0,A1 les sorties B0, B1
1- attendre 5 secondes (à horloge quartz 4MHz)
2- SET B0
Puis
si A0 s'actionne --> SET B0
SET B1
Attendre 0.5 secondes ( c'est pas trés precis ici cad de 0.3 secondes à 0.8 secondes)
Clear B0
Clear B1
si A1 s'actionne --> SET B0
j'ai essayé d'utiliser une fonction delai presente sur un exemple que j'ai trouvé sur internet mais parfois le systeme ne fonctionne pas correctement et parfois il se bloque completement.( meme en actionnant mes entrées)
ci dissous la fonction delay que j'ai appelé dans mon programme.(je l'ai appelé 45 fois pour obtenir 5 secondes)
delai MOVLW D'100' ;approx 10mS pour 4Mhz CLK
MOVWF TIMER2
DEL_LOOP1 MOVLW D'100' ;60
MOVWF TIMER1
DEL_LOOP2 BTFSC PORTA,SW1
GOTO MENU
BTFSC PORTA,SW2
GOTO MENU
BTFSC PORTA,SW3
GOTO MENU
BTFSC PORTA,SW4
GOTO MENU
DECFSZ TIMER1,F
GOTO DEL_LOOP2
DECFSZ TIMER2,F
GOTO DEL_LOOP1
RETLW 0
et pour le selecteur j'ai utlisé:
MENU
;
BTFSC PORTA,0
GOTO EFFECT_1
BTFSC PORTA,1
GOTO EFFECT_2
GOTO MENU
avec EFFECT_1 et EFFECT_2
EFFECT_1 BTFSC PORTA,SW1
GOTO EFFECT_1
E1 MOVLW B'00000001' ;
MOVWF PORTB
GOTO E1
EFFECT_2 BTFSC PORTA,SW2
GOTO EFFECT_2
E2 MOVLW B'00000011' ;
MOVWF PORTB
CALL delai
CALL delai; je l'ai repeté plusieurs fois pour obtenir approx 0.5 s
MOVLW B'00000000' ;
MOVWF PORTB
GOTO E2
Merci d'avance
-----