Provo a fare come hai scritto e ti farò sapere al + presto
grazie
Gestione input PIC 16f
Moderatore:
Paolino
25 messaggi
• Pagina 3 di 3 • 1, 2, 3
0
voti
fatto tutto , solo un problema .... se pigio un pulsante è ok ma se lo lascio non si spegne il led corrispondente . Poi se premo un pulsante e lo tengo premuto , l'altro gioco di luci parte e non si ferma . ti posto il listato . se puoi prova sia il primo che ho fatto così magari riesci a capire cosa devo fare .
program lightcontrol
dim controllo as byte[6]
dim k as byte
sub procedure gioco0
portb.2=1
delay_ms(100)
portb.3=1
delay_ms(100)
portb.4=1
delay_ms(100)
portb.5=1
delay_ms(100)
portb.6=1
delay_ms(100)
portb.7=1
delay_ms(100)
portb=0
portb.2=1
end sub
sub procedure gioco1
portb.3=1
delay_ms(100)
portb.2=1
portb.4=1
delay_ms(100)
portb.5=1
delay_ms(100)
portb.6=1
delay_ms(100)
portb.7=1
delay_ms(100)
portb=0
portb.3=1
end sub
sub procedure gioco2
portb.4=1
delay_ms(100)
portb.3=1
portb.5=1
delay_ms(100)
portb.2=1
portb.6=1
delay_ms(100)
portb.7=1
delay_ms(100)
portb=0
portb.4=1
end sub
sub procedure gioco3
portb.5=1
delay_ms(100)
portb.4=1
portb.6=1
delay_ms(100)
portb.3=1
portb.7=1
delay_ms(100)
portb.2=1
delay_ms(100)
portb=0
portb.5=1
end sub
sub procedure gioco4
portb.6=1
delay_ms(100)
portb.5=1
portb.7=1
delay_ms(100)
portb.4=1
delay_ms(100)
portb.3=1
delay_ms(100)
portb.2=1
delay_ms(100)
portb=0
portb.6=1
end sub
sub procedure gioco5
portb.7=1
delay_ms(100)
portb.6=1
delay_ms(100)
portb.5=1
delay_ms(100)
portb.4=1
delay_ms(100)
portb.3=1
delay_ms(100)
portb.2=1
delay_ms(100)
portb=0
portb.7=1
end sub
main:
trisa=%11111
trisb=%00000011
porta=0
portb=0
for k = 0 to 5
controllo[k] = 0
next k
while true
if (porta.0 = 1) then
if controllo[0] = 0 then
gioco0
controllo[0] = 1
controllo[1] = 0 '
controllo[2] = 0
controllo[3] = 0
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.1 = 1) then
if controllo[1] = 0 then
gioco1
controllo[0] = 0
controllo[1] = 1
controllo[2] = 0
controllo[3] = 0
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.2 = 1) then
if controllo[2] = 0 then
gioco2
controllo[0] = 0
controllo[1] = 0
controllo[2] = 1
controllo[3] = 0
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.3 = 1) then
if controllo[3] = 0 then
gioco3
controllo[0] = 0
controllo[1] = 0
controllo[2] = 0
controllo[3] = 1
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.4 = 1) then
if controllo[4] = 0 then
gioco4
controllo[0] = 0
controllo[1] = 0
controllo[2] = 0
controllo[3] = 0
controllo[4] = 1
controllo[5] = 0
end if
end if
if (portb.0 = 1) then
if controllo[5] = 0 then
gioco5
controllo[0] = 0
controllo[1] = 0
controllo[2] = 0
controllo[3] = 0
controllo[4] = 0
controllo[5] = 1
end if
end if
wend
end.
program lightcontrol
dim controllo as byte[6]
dim k as byte
sub procedure gioco0
portb.2=1
delay_ms(100)
portb.3=1
delay_ms(100)
portb.4=1
delay_ms(100)
portb.5=1
delay_ms(100)
portb.6=1
delay_ms(100)
portb.7=1
delay_ms(100)
portb=0
portb.2=1
end sub
sub procedure gioco1
portb.3=1
delay_ms(100)
portb.2=1
portb.4=1
delay_ms(100)
portb.5=1
delay_ms(100)
portb.6=1
delay_ms(100)
portb.7=1
delay_ms(100)
portb=0
portb.3=1
end sub
sub procedure gioco2
portb.4=1
delay_ms(100)
portb.3=1
portb.5=1
delay_ms(100)
portb.2=1
portb.6=1
delay_ms(100)
portb.7=1
delay_ms(100)
portb=0
portb.4=1
end sub
sub procedure gioco3
portb.5=1
delay_ms(100)
portb.4=1
portb.6=1
delay_ms(100)
portb.3=1
portb.7=1
delay_ms(100)
portb.2=1
delay_ms(100)
portb=0
portb.5=1
end sub
sub procedure gioco4
portb.6=1
delay_ms(100)
portb.5=1
portb.7=1
delay_ms(100)
portb.4=1
delay_ms(100)
portb.3=1
delay_ms(100)
portb.2=1
delay_ms(100)
portb=0
portb.6=1
end sub
sub procedure gioco5
portb.7=1
delay_ms(100)
portb.6=1
delay_ms(100)
portb.5=1
delay_ms(100)
portb.4=1
delay_ms(100)
portb.3=1
delay_ms(100)
portb.2=1
delay_ms(100)
portb=0
portb.7=1
end sub
main:
trisa=%11111
trisb=%00000011
porta=0
portb=0
for k = 0 to 5
controllo[k] = 0
next k
while true
if (porta.0 = 1) then
if controllo[0] = 0 then
gioco0
controllo[0] = 1
controllo[1] = 0 '
controllo[2] = 0
controllo[3] = 0
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.1 = 1) then
if controllo[1] = 0 then
gioco1
controllo[0] = 0
controllo[1] = 1
controllo[2] = 0
controllo[3] = 0
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.2 = 1) then
if controllo[2] = 0 then
gioco2
controllo[0] = 0
controllo[1] = 0
controllo[2] = 1
controllo[3] = 0
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.3 = 1) then
if controllo[3] = 0 then
gioco3
controllo[0] = 0
controllo[1] = 0
controllo[2] = 0
controllo[3] = 1
controllo[4] = 0
controllo[5] = 0
end if
end if
if (porta.4 = 1) then
if controllo[4] = 0 then
gioco4
controllo[0] = 0
controllo[1] = 0
controllo[2] = 0
controllo[3] = 0
controllo[4] = 1
controllo[5] = 0
end if
end if
if (portb.0 = 1) then
if controllo[5] = 0 then
gioco5
controllo[0] = 0
controllo[1] = 0
controllo[2] = 0
controllo[3] = 0
controllo[4] = 0
controllo[5] = 1
end if
end if
wend
end.
0
voti
Scusa ma non riesco bene a capire quale è il problema...
Comunque, hai aggiornato la versione di mikrobasic?? te lo chiedo perché potrebbe essere un bug del programma....
Comunque, hai aggiornato la versione di mikrobasic?? te lo chiedo perché potrebbe essere un bug del programma....
25 messaggi
• Pagina 3 di 3 • 1, 2, 3
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 10 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

