| |||||||
| Registrazione | FAQ | Lista utenti | Social Groups | Calendario | Cerca | I messaggi di oggi | Segna forums come letti |
![]() |
| | Strumenti discussione | Visualizzazione |
| |
| | #1 (permalink) Top | |
| Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.070
| Citazione:
non è che puoi postare il codice che effettivamente stai usando ? Inoltre per debuggare il programma ti consiglio un ottimo programma che si chiama pic simulator ide. che simula anche l'hardware attorno (ingressi pulsanti etc)
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 | |
| | |
| | #2 (permalink) Top | |
| User Data registr.: 19-07-2014
Messaggi: 17
| Citazione:
allora questo è quello che ho scritto da 0... con soli 2 effetti e funziona. Se aggiungo il 3 effetto lo salta: [program Lampeggioled main: while TRUE trisio.1=0 trisio.2=0 trisio.0=1 gpio.1=1 gpio.2=1 cmcon=7 delay_ms(2000) while gpio.0=0 gpio.1=1 delay_ms(1000) gpio.1=0 delay_ms(1000) wend while gpio.0=0 delay_ms(2000) gpio.2=0 delay_ms(2000) wend wend Mentre questo è il primo in assoluto che ho realizzato... Solo che ogni volta che premo il pulsante, mi va random: program MyProject main: TRISIO.1=0 TRISIO.2=0 TRISIO.0=1 cmcon=7 IF gpio.0=0 THEN GOTO fissa end if fissa: TRISIO.1=0 TRISIO.2=0 TRISIO.0=1 cmcon=7 while true gpio.1=1 gpio.2=1 if gpio.0=1 then goto inizio end if wend inizio: delay_ms(100) TRISIO.1=0 TRISIO.2=0 TRISIO.0=1 cmcon=7 while true if gpio.0=1 then goto mezzo end if GPIO.1=1 gpio.2=1 delay_us(50) GPIO.2=0 gpio.1=0 delay_us(50) IF GPIO.0=1 THEN GOTO mezzo end if wend mezzo: delay_ms(100) TRISIO.1=0 TRISIO.2=0 TRISIO.0=1 cmcon=7 while true if gpio.0=1 then goto strobo end if gpio.2=1 delay_ms(500) gpio.2=0 delay_ms(500) gpio.1=1 delay_ms(500) gpio.1=0 delay_ms(500) if gpio.0=1 then goto strobo end if wend strobo: delay_ms(100) TRISIO.1=0 TRISIO.2=0 TRISIO.0=1 cmcon=7 while true if gpio.0=1 then goto fissa end if gpio.1=1 gpio.2=1 delay_ms(50) gpio.1=0 gpio.2=0 delay_ms(50) if gpio.0=1 then goto fissa end if wend end. INFINE, questo è quello che ho provato inserendo la variabile K ed eliminando i goto. Questo si blocca al secondo effetto e da li non si muove: program Lampeggioled const tasto as byte[4]=(0,1,2,3) dim K as byte dim premuto as byte main: gpio.0=0 gpio.1=0 gpio.2=0 K=0 premuto=0 trisio.1=0 trisio.2=0 trisio.0=1 cmcon=7 while true if gpio.0=0 then premuto=0 end if if (gpio.0=1)and (K<3) and (premuto=0) then K=K+1 premuto=1 end if if(gpio.0=1) and (K=3)and(premuto=0)then K=0 end if if K=0 then gpio.1=1 gpio.2=1 end if if K=1 then gpio.1=1 gpio.2=1 delay_us(50) gpio.1=0 gpio.2=0 delay_us(50) end if if K=2 then gpio.1=1 delay_ms(500) gpio.1=0 delay_ms(500) gpio.2=1 delay_ms(500) gpio.2=0 delay_ms(500) end if if K=3 then gpio.1=1 gpio.2=1 delay_ms(50) gpio.1=0 gpio.2=0 delay_ms(50) end if wend end. Ora tutti e 3 hanno dei problemi, e fino ad ora, l'unico che cambia perfettamente è quello con i soli while, ma non legge (se lo aggiungo ) il 3o effetto[/COLOR] | |
| | |
| | #3 (permalink) Top | |
| User Data registr.: 21-01-2004 Residenza: Milano
Messaggi: 989
| Citazione:
In pratica hai due cicli while uno dietro l'altro con la condizione di ripetizione data dallo stato del pulsante. Adesso immagina di essere nel primo while: fino a che l'ingresso è zero continua ad eseguire il codice contenuto nel while, ma quando l'ingresso diventa 1 esegue l'istruzione while, trova l'ingresso a 1 ed esegue subito l'istruzione seguente il wend, che è un altro while e se l'ingresso è ancora a 1 lo salta ed esce subito al wend... In pratica il cambio dell'effetto lo fa sui rimbalzi del pulsante e sfruttando i ritardi dei vari effetti. Prova a mettere la condizione in fondo all'effetto, invece che all'inizio: non uso il mikrobasic, ma dovresti avere una struttura do ... while(condizione); in questo caso tra quando trova il pulsante chiuso e quando lo va a testare la volta successiva hai il tutto il tempo di ritardo dell'effetto che dovrebbe annullarti i rimbalzi. Michele
__________________ __________________________________________________ The worst day flying is better than the best day working. | |
| | |
| | #4 (permalink) Top | |
| User Data registr.: 19-07-2014
Messaggi: 17
| Citazione:
A questo punto credo sia lo schema... POSTO lo schema qui... se potete vedere se ho errato qualcosa Image - TinyPic - Servizio di hosting d'immagini, condivisione immagini & hosting di video gratuito Grazie ancora | |
| | |
| | #5 (permalink) Top |
| User Data registr.: 21-01-2004 Residenza: Milano
Messaggi: 989
|
qualche ritocco sull'hardware si può fare... - aggiungi un condensatore elettrolitico 10uF 16V all'uscita del regolatore - aggiungi un condensatore di filtro da 47 nF tra il pin 1 e il pin 8 del micro - il condensatore C1 non serve a molto... se vuoi filtrare il pulsante devi mettere anche una resistenza in serie (t=RC, ma se R=0...) visto che hai già messo i transistor, lasciali, ma puoi pilotare direttamente i led dai pin del micro (con la dovuta resistenza) con correnti fino a 20mA. Michele
__________________ __________________________________________________ The worst day flying is better than the best day working. |
| | |
| | #6 (permalink) Top | |
| User Data registr.: 19-07-2014
Messaggi: 17
| Citazione:
E tra i programmi che ho scritto.... quale dunque mi consigli di utilizzare? Aggiungo la resistenza?? Grazie | |
| | |
| | #7 (permalink) Top | |
| Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.070
| Citazione:
asm { bsf _status,RP0 call 0x3FF movwf _osccal bcf _status,RP0 } Il grosso vantaggio è che si liberano ben due piedini di I/O
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 | |
| | |
| | #8 (permalink) Top | |
| User Data registr.: 19-07-2014
Messaggi: 17
| Citazione:
E poi? come dovrei rifare la calibrazione... scusa sono alle prima armi | |
| | |
![]() |
| Bookmarks |
| Strumenti discussione | |
| Visualizzazione | |
| |
Discussioni simili | ||||
| Discussione | Autore discussione | Forum | Commenti | Ultimo Messaggio |
| pic 12F629 | faustog_2 | Circuiti Elettronici | 2 | 07 ottobre 13 11:52 |
| ESC con PIC | Italia | Circuiti Elettronici | 4 | 23 marzo 13 16:27 |
| Problema con programma MPX per aggiornamento Royal PRO | picman | Radiocomandi | 0 | 29 agosto 10 20:27 |
| Programma facile per pic | Orso82 | Circuiti Elettronici | 20 | 27 febbraio 05 16:44 |
| Regolatore con PIC | rapis | Circuiti Elettronici | 1 | 26 novembre 01 11:15 |