22 luglio 14, 10:47 | #11 (permalink) Top | |
User Data registr.: 19-07-2014
Messaggi: 17
| Citazione:
Dato che il programma che ho realizzato non raggiunge neanche un kb, va piu che bene. Uso questo perchè a scuola ho utilizzato questo programma proprio con la scheda che hai tu, programmavo l'LCD, o facevo giochi con i led. Ora pero' dopo qualche anno sto incontrando problemi. Se avete bisogno anche dello schema che ho realizzato , ve la posto. Se serve , dato che il pic 12f629, lavora a circa 4mhz, ho inserito un quarzo da 4mhz, per evitare di inserire l'oscillatore interno. Vi ringrazio. Buona giornata attendo notizie | |
22 luglio 14, 11:15 | #12 (permalink) Top | |
User Data registr.: 18-07-2007 Residenza: milano
Messaggi: 1.495
| Citazione:
domanda ma perchè usi questo pic per un lavoro cosi semplice? io ti consiglio di usare un 16f84 classico e molto semplice per testare il programma, è un piccolo trucco per togliersi dei dubbi..... Flavio | |
22 luglio 14, 11:50 | #13 (permalink) Top | |
User Data registr.: 19-07-2014
Messaggi: 17
| Citazione:
A livello hardware , sto usando le porte gp0-gp1-gp2, dove gp0 ho collegato il pulsante, gp1 ho collegato 4 led, gp2 altri 4 led. in poche parole vorrei realizzare un piccolo cilindro con gli 9 led che escono sopra, ho preparato un dischetto con 8 buchi, dove andranno alloggiati i led. e centrale il pulsante. | |
22 luglio 14, 12:50 | #14 (permalink) Top |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.069
|
a mio giudizio vanno disabilitati i comparatori sulle porte gpio 0,1,2 non ricordo a memoria il registro, dopo a casa verifico. Inoltre come pic presenta un notevole vantaggio rispetto al 16f84... non ha bisogno di oscillatore esterno, tuttavia ricordati che per ottenete timing decenti devi caricare la calibrazione in OSCCAL.
__________________ 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 |
22 luglio 14, 13:16 | #15 (permalink) Top | |
User Data registr.: 19-07-2014
Messaggi: 17
| Citazione:
il comparatore dovrei averli disabilitati, con cmcon=7 quindi tolgo il quarzo da 4mhz? Attendo notizie Ultima modifica di trabo : 22 luglio 14 alle ore 13:21 | |
22 luglio 14, 13:30 | #16 (permalink) Top | |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.069
| 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 | |
22 luglio 14, 13:40 | #17 (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] | |
23 luglio 14, 17:09 | #18 (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. | |
30 luglio 14, 12:39 | #19 (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 | |
30 luglio 14, 16:16 | #20 (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. |
Bookmarks |
| |
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
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 |