Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Gestione input PIC 16f

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[11] Re: Gestione input PIC 16f

Messaggioda Foto Utentemaxtronic » 4 feb 2013, 19:42

Che tipo di variabile potrei usare ? BYTE ?
lo imposto tipo
dim controllo as byte ?
Avatar utente
Foto Utentemaxtronic
0 4
 
Messaggi: 22
Iscritto il: 30 gen 2013, 0:43

0
voti

[12] Re: Gestione input PIC 16f

Messaggioda Foto Utentemaxtronic » 4 feb 2013, 20:06

Niente non riesco a impostare le variabili
ho provato con qualche dim all'inizio ma mi sono perso :(
Avatar utente
Foto Utentemaxtronic
0 4
 
Messaggi: 22
Iscritto il: 30 gen 2013, 0:43

0
voti

[13] Re: Gestione input PIC 16f

Messaggioda Foto Utentemaxtronic » 4 feb 2013, 23:33

Non riesco ad inserire le variabili ed in caso metto qualcosa del tipo dim porta as byte il chip non si ferma + . il tutto l'ho fatto solo con due porte per provare :(
Avatar utente
Foto Utentemaxtronic
0 4
 
Messaggi: 22
Iscritto il: 30 gen 2013, 0:43

0
voti

[14] Re: Gestione input PIC 16f

Messaggioda Foto UtenteDryden » 5 feb 2013, 11:26

Ciao, no non ho provato il tuo programmino perche non ho tempo, sai sto traslocando...
oltre a quello io uso mikrobasic Pro 5.8 su una easypic6... dal mio al tuo compilatore c'è molta differenza e infatti ti consigliai già di aggiornarlo....

Oltre a questo, puoi usare anche una variabile bit, booleana o byte e la chiami con un nome a te consono. Penso che:

Dim porta as byte

non te lo prenda, ma puoi sempre usare una matrice!

dim controllo as byte[8]

in questo modo hai una corrispondenza perfetta con le porte:

porta.0 = controllo[0]
porta.1 = controllo[1]
porta.2 = controllo[2]
.....

oppure dichiari tante variabili quante le porte in questo modo:

dim controllo_0 as boolean
dim controllo_1 as boolean
dim controllo_2 as boolean
....
e quando la verifichi fai:

if controllo_0 = true then
....
end if

Scrivimi il listato completo, così te lo modifico e vediamo come va!
Avatar utente
Foto UtenteDryden
20 4
New entry
New entry
 
Messaggi: 97
Iscritto il: 1 gen 2011, 14:37
Località: Bolzano

0
voti

[15] Re: Gestione input PIC 16f

Messaggioda Foto Utentemaxtronic » 6 feb 2013, 18:00

Spiacente ma non riesco a fare sta cosa . mi accontenterò del programma che ho scritto all'inizio .
rimedierò con l'hardware .
il mio compilatore non supporta alcune cose e sinceramente non posso aggiornarlo adesso :(
Ho sempre degli errori quando gli dico che la porta.0 = controllo[0]
Avatar utente
Foto Utentemaxtronic
0 4
 
Messaggi: 22
Iscritto il: 30 gen 2013, 0:43

0
voti

[16] Re: Gestione input PIC 16f

Messaggioda Foto UtenteDryden » 6 feb 2013, 18:14

Normalissimo,
non puoi dirgli di assegnare un valore byte ad una porta singola, cioè un bit.

posta il listato di quello che hai fatto e te lo modifico in modo appropriato!
Avatar utente
Foto UtenteDryden
20 4
New entry
New entry
 
Messaggi: 97
Iscritto il: 1 gen 2011, 14:37
Località: Bolzano

0
voti

[17] Re: Gestione input PIC 16f

Messaggioda Foto Utentemaxtronic » 6 feb 2013, 18:41

L ' ho cancellato , domani lo riscrivo e lo poso . Adesso devo andare a trovare una nipotina che è nata ieri :mrgreen:
Avatar utente
Foto Utentemaxtronic
0 4
 
Messaggi: 22
Iscritto il: 30 gen 2013, 0:43

0
voti

[18] Re: Gestione input PIC 16f

Messaggioda Foto UtenteDryden » 7 feb 2013, 9:17

Tranquillo, non c'è problema....

Auguri!!!
Avatar utente
Foto UtenteDryden
20 4
New entry
New entry
 
Messaggi: 97
Iscritto il: 1 gen 2011, 14:37
Località: Bolzano

0
voti

[19] Re: Gestione input PIC 16f

Messaggioda Foto Utentemaxtronic » 9 feb 2013, 19:15

Ecco il listato maaaa .... il mio compilatore non mi fa fare tante cose

program pulsanti
dim controllo as byte[8]

main:
trisa=%11111
trisb=%00000011
porta=0
portb=00000000
inizio:

porta=0
portb=0
delay_ms(50)
if porta.0 = 1 then
controllo[0] = true
goto inizio
end if

if controllo[0] = true then

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 if
if controllo[1] = true then

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 if








end.
Avatar utente
Foto Utentemaxtronic
0 4
 
Messaggi: 22
Iscritto il: 30 gen 2013, 0:43

0
voti

[20] Re: Gestione input PIC 16f

Messaggioda Foto UtenteDryden » 13 feb 2013, 14:26

Ciao, scusami ma prima non ho avuto tempo.

ho modificato il codice... testalo perche io non ho tempo di provarlo ma ad occhio dovrebbe funzionare.
se ti da problemi di spazio insufficiente, dimmelo che te lo modifico per risparmiare ROM

Codice: Seleziona tutto
program pulsanti

dim controllo as byte[5]   'il numero va modificato in base a quanti pulsanti hai
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

'aggiungi quante sub tanti sono i giochi

main:
trisa=%11111
trisb=%00000011
porta=0
portb=0

for k = 0 to 4    'il numero va modificato in base a quanti pulsanti hai
    controllo[k] = 0
next k

while true

if (porta.0 = 1) then
if controllo[0] = 0 then
    gioco0
    controllo[0] = 1  'imposta il flag di gioco già eseguito
    controllo[1] = 0  'azzera il flag dei giochi eseguiti precedentemente
    controllo[2] = 0
    controllo[3] = 0
    controllo[4] = 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
end if
end if

'replica il blocco sopra in base a quanti pulsanti e giochi, per test ne ho messi 2

wend

end.
Avatar utente
Foto UtenteDryden
20 4
New entry
New entry
 
Messaggi: 97
Iscritto il: 1 gen 2011, 14:37
Località: Bolzano

PrecedenteProssimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti