| Libero51
| Inviato il: 30/7/2010,22:30
|
CITAZIONE (NonSoloBolleDiAcqua @ 30/7/2010, 22:53) Libero, non ho capito...il debugger è già presente nel compilatore...premi il pulsante debug nella barra dei menù....li si testa il codice.... Non l'avevo visto , peccato . . . licenziato alla terza ora . . . eheheh 
| | | | Ferrobattuto
| Inviato il: 30/7/2010,22:47
|
 Ricordati che mi devi spiegare perché hai tirato il sasso nell'acqua! Ciao.
| | | | Libero51
| Inviato il: 30/7/2010,22:51
|
CITAZIONE (Ferrobattuto @ 30/7/2010, 23:47)  Ricordati che mi devi spiegare perché hai tirato il sasso nell'acqua! Ciao. Perchè sono un pirla . . . 
X Bolle
Adesso che ho imparato a premere Debug dopo Compile mi sono accorto che il salto condizionato >= si attiva solo per > . . . mi pare
| | | | NonSoloBolleDiAcqua
| Inviato il: 31/7/2010,07:04
|
CITAZIONE (Libero51 @ 30/7/2010, 23:30) CITAZIONE (NonSoloBolleDiAcqua @ 30/7/2010, 22:53) Libero, non ho capito...il debugger è già presente nel compilatore...premi il pulsante debug nella barra dei menù....li si testa il codice.... Non l'avevo visto , peccato . . . licenziato alla terza ora . . . eheheh  Macchè...questi sono i problemi che si hanno quando non si scrivono i tutorial...e poi se non l'hai notato tu...chissà quanti non lo faranno?  Ora verifico >= e >... Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | NonSoloBolleDiAcqua
| Inviato il: 31/7/2010,07:14
|
Libero, verissimo era bucato il <= e il >=...oltre ad aver sistemato i due buchi...ho inserito nella nuova versione 0.4 il commento a fine linea con il comando ' ( apice in alto alla vb6) Allego la Versione 0.4 ...( sto testando i primi programmi nel pic ....mmiiiiiiiiiiiiiiiiii) Ciao Bolle
Modificato da NonSoloBolleDiAcqua - 3/2/2012, 19:25
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Libero51
| Inviato il: 31/7/2010,08:06
|
CITAZIONE (NonSoloBolleDiAcqua @ 31/7/2010, 08:14) ...ho inserito nella nuova versione 0.4 il commento a fine linea con il comando ' ( apice in alto alla vb6)
Nel pacchetto della versione 0.4 mancano i file .eab e .tea , aggiunti quelli tutto funziona.
Se si effettuano modifiche al codice , non si salva, e si compila regolarmente ,il debugger usa la versione precedente del codice.
Forse un set di caratteri più piccoli consentirebbe di indentare meglio i cicli.
Proverò a preparare un tutorial su YouTube . . . .
. . . ed ecco la versione spiegata linea per linea.
10 REM TEST CENTRALINA PANNELLO TERMICO SOLARE
11 REM LA PORTA 1 PILOTA LA POMPA DI CIRCOLAZIONE VALORE 1
12 REM LA PORTA 2 PILOTA IL LED VERDE - POMPA OFF VALORE 2
13 REM LA PORTA 3 PILOTA IL LED ROSSO - POMPA ON VALORE 4
14 REM IL VALORE 2 (0+2+0+0+0) SETTA ON LA PORTA 2
15 REM IL VALORE 5 (1+0+4+0+0) SETTA ON LE PORTE 1 E 3
16 REM SENSORE A SU SERBATOIO , SENSORE B SU PANNELLO
17 REM LA POMPA SI ATTIVA PER DIFFERENZE DI 8 GRADI
18 REM LA POMPA SI DISATTIVA PER DIFFERENZE INFERIORI A 4 GRADI
19 REM --------------------------------------------------------
20 C=2 'assegna il valore 2 alla variabile C
30 OUT=C 'imposta la configurazione delle porte in uscita
40 A=CADS1 'assegna alla variabile A il valore del primo convertitore AD
50 B=CADS2 'assegna alla variabile B il valore del secondo convertitore AD
60 D= B-A 'assegna alla variabile D la differenza tra B ed A
70 IF D >=4 THEN 90 'se D>=4 salta alla linea 40
80 IF C=2 THEN 40 ELSE 20 'se C=2 salta alla linea 40 altrimenti salta alla 20
90 IF D >8 THEN 100 ELSE 40' se D>8 salta a 100 altrimenti salta a 40
100 IF C=5 THEN 40 'se C=5 salta a 40
110 C=5 'assegna il valore 5 alla variabile C
120 GOTO 30 'salta a 30
125 REM --------------------------------------------------------
130 REM LA LINEA 30 VIENE CONFIGURATA DAI BIT DELLA VARIABILE C
140 REM LA LINEA 20 CONFIGURA C PER ACCENDERE SOLO IL LED VERDE
150 REM LA LINEA 110 CONFIGURA C PER ACCENDERE LA POMPA ED IL LED ROSSO
Saluti
P.S. peccato che il codice riportato in HTML perda le indentazioni originali.
| | | | kekko.alchemi
| Inviato il: 31/7/2010,10:31
|
CITAZIONE (Ferrobattuto @ 30/7/2010, 21:57) CITAZIONE (kekko.alchemi @ 30/7/2010, 21:17) ....Devo dare un avviso per tutti però: Se entrate a far parte di questo "mondo" non potrete più tornare indietro!! :-) :-) Guarda che di "malattie infettive" in questo forum ce ne sono già parecchie!  Forse non te ne sei accorto, ma sei stato "contagiato" pure tu!  Hai perfettamente ragione ferrooooo!!! Per esempio io infatti qui nel forum ho preso la piombite acuta!! 
CITAZIONE (NonSoloBolleDiAcqua @ 30/7/2010, 23:17) Ciao Fra...come va?Fa caldo? Vediamo...la scelta del pic è legata alla mia esperienza...ci lavoro da decadi...ricominciare con gli atmel non mi entusiasma....non sono più giovane...tocca a quelli come te tirare la carretta!!!  Vediamo, anche questo pic ha 32 k di memoria ed ha 12 convertitori AD...perchè ne ho messi solo 2? per evitare di far confiurare le porte...insomma per semplificare le cose si deve rinunciare a qualcosa...ma molto probabilemente li porterò a 4....ma vediamo come evolvono i test....Libero si è messo d'impegno...vediamo cosa esce fuori. Un forte limite sono i 256 Byte di programma che si possono caricare(EEPROM)...veramente esegui...inizialmente non ci avevo nemmeno pensato...ma poi ho pensato al tokenizzatore ...e li mi sono convinto che ce la si poteva fare. Insomma prevederemo due versioni : la prima smart (cioè solo il pic) per versioni che entrano nei 256 byte...l'altra avrà una eeprom esterna al pic e a quel punto non ci saranno limiti ( una eeprom da 64k costa 5 euro)...ma c'è un chip in più...  . Comunque il compilatore , come ha notato Libero, dice la quantità di memoria occupata...se siamo al disotto del 100%...allora siamo a cavallo: occorre rispettare il primo comandamento degli ecosostenibili ( @libero51). Per quanto riguarda il linguaggio c...è vero che il programma sarebbe più corto...ma gli utilizzatori si dimezzerebbero...ma pensandoci bene ... la seconda versione si può fare in c...magari fa risparmiare quel 30% di memoria . Ciao Ciao , qui non fa molto caldo si sta bene, sono in campeggio ora...! Effettivamente 256 byte sono troppo pochi, nell'ATmega32 ne hai 1024 e programmando in C anche riempendo pagine e pagine non sono mai riuscito a riempirli tutti. State facendo un ottimo lavoro e anzi il fatto di avere solamente 256 byte è un bell'esercizio per essere sintetici e snellire il programma, anche se in certe occasioni non è possibile. Vi seguo con interesse, e non appena scriverete la seconda versione in C mi renderò attivo!
Un saltuto kekko!
Modificato da NonSoloBolleDiAcqua - 31/7/2010, 12:44
--------------- L'universo è dominato dagli estremi, l'infinitamente grande e l'infinitamente piccolo. Ma l'equilibrio è ciò che plasma la materia di cui siamo fatti. by kekko
| | | | NonSoloBolleDiAcqua
| Inviato il: 31/7/2010,11:52
|
CITAZIONE (Libero51 @ 31/7/2010, 09:06) Nel pacchetto della versione 0.4 mancano i file .eab e .tea , aggiunti quelli tutto funziona. Il sorgente ha estensione eab ( Energia Alternativa Basic), il file tea ( è il codice che va trasferito nel pic) è il tokenizzato...e viene generato quando si compila....quindi è normale che manchi il file tea...cmq ricontrollo tutto.
CITAZIONE (Libero51 @ 31/7/2010, 09:06) Se si effettuano modifiche al codice , non si salva, e si compila regolarmente ,il debugger usa la versione precedente del codice. hai ragione... e siamo a 3!!! 
CITAZIONE (Libero51 @ 31/7/2010, 09:06) Forse un set di caratteri più piccoli consentirebbe di indentare meglio i cicli ....ok...vediamo di inserire la gestione dei font...e per default li mettiamo più piccoli.
CITAZIONE (Libero51 @ 31/7/2010, 09:06) Proverò a preparare un tutorial su YouTube . . . . Sarebbe fantastico... 
Modificato da NonSoloBolleDiAcqua - 31/7/2010, 16:02
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Libero51
| Inviato il: 31/7/2010,17:20
|
Ed ecco il primo tutorial . . . Lo speaker fa qualche errore ma non si capisce se lo fa apposta per mantenere attenta la . . . platea. La musica mi piace molto . . . aaaaaaaaaaaaaaah
| | | | | | | NonSoloBolleDiAcqua
| Inviato il: 2/8/2010,10:14
|
Bungiorno a tutti, vedendo il lavoro di Libero, mi sono detto...perchè non rendere questo lavoro un lavorone implementando il parser in modo completo? Sono stati implementati gli operatori unary,l'AND e l'OR logico, le parentesi "(" " " ....etc...
Questo fine settimana l'ho finito e il pic sembra lo gestisca alla grande. Poi mi sono detto...perchè non implementiamo anche le variabili generiche? E ho fatto anche quello.Inoltre ho fatto mio un consiglio di kekko...per diminuire il codice utilizzeremo l'operatore ++, --, var+=val, var-=val ... Insomma la cosa prende una forma seria...molto professional. 
10 REM TEST NUOVO PARSER 11 VAR1=VAR1+1 13 CIAO++ 14 USBOUT=9*(3+VAR1)+CIAO 15 waits 1 18 goto 11 Quando riesco a comprimere il file in rar allego la versione 0.5. Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | NonSoloBolleDiAcqua
| Inviato il: 2/8/2010,17:11
|
Come dicevo la Versione 0.5 ,che allego, fa un gran bel salto in avanti..le varianti effettuate sono molte:
1. Parser definitivo .Ottimizzazione ( ancora più performante) con l'utilizza gli operatori AND ed OR sia binari che logici con parentesi...operatori presi in prestito dal c ( ++, --, etc) ...insomma mettetelo alla prova..come si fa? Chiedete a Libero51 .
2. Possibilità di modificare il set dei font...sia tipo che altezza.
3. Status e memoria utilizzata dal programma...con visualizzazione grafica.
4. Variabili intere utilizzabili:sono 5...forse aumenteranno...come forse si utilizzeranno i float ed anche le stringhe...vediamo dove ci portano i test.
5. Possibilità di trasferire il codice nel pic ed ovviamente farlo girare (che figo!!!!).Se non avete il processore...non avete speranza...se ho tempo faccio un video ...su un piccolo esempio.
6.Negli esempi c'è l'inseguitore realizzato dal Libero, l'ho indegnamente modificato mettendo in evidenza le variabili e settando i convertitori a 4 mediante il nuovo comando CADS=N dove si settano il numero dei convertitori che si vogliono utilizzare (per default sono 2).
7.Tante altre cose che nno ricordo...vabbè...tocca a voi....fatemi sapere!
Bolle
Modificato da NonSoloBolleDiAcqua - 3/2/2012, 19:26
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Libero51
| Inviato il: 2/8/2010,23:03
|
CITAZIONE (NonSoloBolleDiAcqua @ 2/8/2010, 18:11) ....fatemi sapere! Certo che con il debugger è tutto un'altro andare . Ho aggiornato il programma dell'inseguitore solare che aveva qualche bug ,una risistematina , ho aggiunto la possibilità di variare la sensibilità ed ho aggiunto i commenti ad ogni linea . Non tentate di inserire numeri di linea superiori a 255 . . . eheheheh. Che bestia, ci ho perso mezz'ora a capirlo . Certo che una routinetta di rinumerazione automatica sarebbe comoda . . . ma non è assolutamente urgente. Un passo alla volta . . .  Avete capito come si settano le cinque porte con un solo numero ? Il numero 0 resetta a 0 tutte le porte , il numero 31 le setta tutte ad 1.
Il numero 31 è la somma di : 1 x 2 ^ 0 =1 :porta out0 1 x 2 ^ 1 =2 :porta out1 1 x 2 ^ 2 =4 :porta out2 1 x 2 ^ 3 =8 :porta out3 1 x 2 ^ 4 =16 :porta out4
il numero 31 in binario si scrive quindi 11111
Ecco il programmino revisionato:
10 '-----------------------------------------------TEST CENTRALINA INSEGUITORE SOLARE A DUE ASSi 11 ' LA PORTA 0 PILOTA IL MOTORE X VERSO SINISTRA VALORE 1 12 ' LA PORTA 1 PILOTA IL MOTORE X VERSO DESTRA VALORE 2 13 ' LA PORTA 2 PILOTA IL MOTORE Y VERSO IL BASSO VALORE 4 14 ' LA PORTA 3 PILOTA IL MOTORE Y VERSO L'ALTO VALORE 8 15 ' CADS1: FOTODIODO SINISTRO , CADS2: FOTODIODO DESTRO 16 ' CADS3: FOTODIODO ALTO , CADS4: FOTODIODO BASSO
20 CADS=4 ' vengono previsti 4 convertitori analogici-digitali 30 D=0 ' nella variabile D viene impostata la soglia di sensibilità : valore 0 = massima sensibilità
40 OUT=C ' la porta di uscita viene settata con i bit della variabile C , originariamente vale 0 50 C=0 ' inizia il ciclo e la variabile C viene azzerata , i vari test la modificheranno aggiorneranno i singoli bit 60 'WAITS 2 ' attende 2 secondi 70 ' ELABORA ORIZZONTALE 80 A=CADS1 ' la variabile A viene caricata con il valore del sensore sinistro 90 B=CADS2 ' la variabile B viene caricata con il valore del sensore destro 100 IF A >=B THEN 160 ' se A è maggiore o uguale a B salta a 160 110 '--------------------------------------B è maggiore di A , il sensore destro è più illuminato 120 IF B-A<=D THEN 210 ' se la differenza non raggiunge la soglia salta a 210 130 '--------------------------------------la differenza supera la soglia 140 C=2 ' attiverà la porta 1 : il servo orizzontale deve girare a sinistra 150 GOTO 210 'salta a 210 160 '-------------------------------------- A è maggiore o uguale a B, il sensore sinistro è maggiormente o ugualment illuminato 170 IF A-B <=D THEN 210 ' se la differenza non supera la soglia salta a 210 180 '--------------------------------------la differenza supera la soglia 190 C=1 ' attiverà la porta 0 : il servo orizzontale deve girare a destra 200 ' ELABORA VERTICALE 210 A=CADS3 ' la variabile A viene caricata con il valore del sensore alto 220 B=CADS4 ' la variabile B viene caricata con il valore del sensore basso 230 IF A>=B THEN 236 231 '--------------------------------------B è maggiore di A , il sensore basso è più illuminato 232 IF B-A <=D THEN 40 ' se la differenza non supera la soglia salta a 140 233 '--------------------------------------la differenza supera la soglia 234 C+=8 ' attiverà la porta 3 : il servo verticale deve girare verso il basso (somma 8 a C) 235 GOTO 40 'salta a 40 236 '-------------------------------------- A è maggiore o uguale a B 237 IF A-B <=D THEN 40 ' se la differenza non supera la soglia salta a 40 238 '--------------------------------------la differenza supera la soglia 239 C+=4 'attiverà la porta 2 : il servo verticale deve girare verso l'alto (somma 4 a C) 240 GOTO 40 'salta a 40
Saluti 
P.S. Penso che potete trasferirlo facilmente con un copia incolla .
| | | | NonSoloBolleDiAcqua
| Inviato il: 2/8/2010,23:57
|
CITAZIONE (Libero51 @ 3/8/2010, 00:03) Non tentate di inserire numeri di linea superiori a 255 . . . eheheheh. Cavolo...è scritto nelle istruzioni...e i lcompilatore da anche errore...mi spiace...sono innocente o c'è qualche problema che mi sfugge? 
CITAZIONE (Libero51 @ 3/8/2010, 00:03) Certo che una routinetta di rinumerazione automatica sarebbe comoda . . . ma non è assolutamente urgente. No, no...ho un solo collaboratore...non lo voglio mica perdere!!!  Renum [linea iniziale][step] Dimmi se ti piace. 
CITAZIONE (Libero51 @ 3/8/2010, 00:03) Avete capito come si settano le cinque porte con un solo numero ? Il numero 0 resetta a 0 tutte le porte , il numero 31 le setta tutte ad 1.
Il numero 31 è la somma di : 1 x 2 ^ 0 =1 :porta out0 1 x 2 ^ 1 =2 :porta out1 1 x 2 ^ 2 =4 :porta out2 1 x 2 ^ 3 =8 :porta out3 1 x 2 ^ 4 =16 :porta out4 Le costanti Esadecimali e Binarie sono nate nell'ultima versione (Esempio esadecimale &HFF, esempio binario &B1011)
Cosa faccio ti spedisco il pic a casa? Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Libero51
| Inviato il: 3/8/2010,05:59
|
CITAZIONE (NonSoloBolleDiAcqua @ 3/8/2010, 00:57) . . . Renum [linea iniziale][step] Dimmi se ti piace. . . . Le costanti Esadecimali e Binarie sono nate nell'ultima versione (Esempio esadecimale &HFF, esempio binario &B1011) . . . Cosa faccio ti spedisco il pic a casa? Mi sa che stiamo correndo troppo . . . così ne perdiamo per strada troppi. Cercherò di volta in volta di aiutarti con un pò di didattica grezza grezza . Stai facendo un lavoro sensazionale . E' normale che l'ansia del produrre un risultato ci faccia saltare troppe spiegazioni ma lo scopo fondamentale è quello di coinvolgere il maggior numero di utenti .
Parliamo di Hard. . . ottima l'idea di procedere in prima battuta con una versione semplice senza eprom. Quando pensi di aver trovato una configurazione discreta sul millefori cercherò di montarne una, basterà qualche foto e l'elenco dei componenti e . . . speriamo che me la cavo. Se ci riesco sarà un bel test per la fattibilità del progetto. eheheh 
Parliamo di Soft . . . solo tu puoi decidere fino a che punto è utile coinvolgermi. Puoi comunque inviarmi le documentazioni che ritieni più utili per ora . Non si finisce mai di studiare , giocare, . . . provare .
Sto pensando che se il compilatore durante il test di debug scrivesse ad ogni ciclo su un file txt la configurazione di porte , variabili, convertitori , potrei usare quel file come sorgente per un' applicazione grafica di supporto.
Una specie di editor grafico che dia la posiibilità a tutti di disegnare uno schemino animato del progetto. Associando una porta ad un led colorato o ad una pompa , o ad un servo . . . associando il valore dei convertitori a delle caselle di testo e prevedendo un piccolo set di disegno ognuno potrebbe disegnarsi il proprio display virtuale . . . per ora.
Preparerò il tutorial dell'inseguitore .
x Ferro il tuo ruolo è fondamentale . Se ci sei . . . batti un colpo . . . piano però.
Saluti 
P.S. : naturalmente è fondamentale il ruolo di tutti , diciamo che conoscendolo ha tutte le buone caratteristiche per essere usato . . . come cavia . . . eheheh 
Modificato da Libero51 - 3/8/2010, 07:15
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|