ce programme pourtant trés simple ne fonctionne pas ?
chaque entrée est cablé avec un pull down de 10K
le pic utilisé est un 16F819
le but :
a chaque appui sur une entrée la sortie associée reste à 1 pendant 100ms ou 500ms (suivant l'eat de portA.6)
caque mise à 1 'même fugitive , devrait mettre l'entée à 1 la sortie corespondante (pendant 100ms ou 500 ms suivant l'eta de portA.6).
cependant si aucun poussoir n'est activé le systeme se comporte comme un chenillard .
au multimetre je me ren compte que les entées se metent au +5v cela malgré le pull down de 10K ?
l'objectif etait que chaque appui sur le poussoir (qui met l'entrée au +) mette la sortie correspondante à 1( pendant 100ms ou 500ms suivant l'etat de portA.6 )
comment expliquer ça !
je ne vois pas de probleme dans le programme ?
cordialement
programme ci dessous
Define CONF_WORD = 0x2f70
ADCON1 = %00000111 'configuration en i/O
TRISA = %01111100'1 entrée
TRISB = %00001111
OSCCON = %01100100
OPTION_REG = %10000000'pas de pull up
PORTB = %00000000
PORTA = %00000000
Dim temps As Word
Symbol sw1 = PORTA.2 'pin 1
Symbol sw2 = PORTA.3 'pin 2
Symbol sw3 = PORTA.4 'pin 3
Symbol sw6 = PORTB.0 'pin 6
Symbol sw7 = PORTB.1 'pin 7
Symbol sw8 = PORTB.2 'pin 8
Symbol sw9 = PORTB.3 'pin 9
Symbol sortie18 = PORTA.1
Symbol sortie17 = PORTA.0
Symbol sortie16 = PORTA.7
Symbol sortie15 = PORTA.6
Symbol sortie13 = PORTB.7
Symbol sortie12 = PORTB.6
Symbol sortie11 = PORTB.5
Symbol sortie10 = PORTB.4
temps = 100
debut:
If PORTA.6 = 1 Then
temps = 100
Else
temps = 500
Endif
If sw1 = 1 Then
PORTA = %00000010
PORTB = %00000000
'sortie18 = 1
WaitMs temps
Else
'sortie18 = 0
PORTA = %00000000
PORTB = %00000000
Endif
If sw2 = 1 Then
'sortie17 = 1
PORTA = %00000001
PORTB = %00000000
WaitMs temps
Else
'sortie17 = 0
PORTA = %00000000
PORTB = %00000000
Endif
If sw3 = 1 Then
'sortie16 = 1
PORTA = %10000000
PORTB = %00000000
WaitMs temps
Else
'sortie16 = 0
PORTA = %00000000
PORTB = %00000000
Endif
If sw6 = 1 Then
PORTA = %00000000
PORTB = %10000000
'sortie13 = 1
WaitMs temps
Else
'sortie13 = 0
PORTA = %00000000
PORTB = %00000000
Endif
If sw7 = 1 Then
'sortie12 = 1
PORTA = %00000000
PORTB = %01000000
WaitMs temps
Else
'sortie12 = 0
PORTA = %00000000
PORTB = %00000000
Endif
If sw8 = 1 Then
'sortie11 = 1
PORTA = %00000000
PORTB = %00100000
WaitMs temps
Else
'sortie11 = 0
PORTA = %00000000
PORTB = %00000000
Endif
If sw9 = 1 Then
'sortie10 = 1
PORTA = %00000000
PORTB = %00010000
WaitMs temps
Else
'sortie10 = 0
PORTA = %00000000
PORTB = %00000000
Endif
PORTA = 0
PORTB = 0
Goto debut
-----