| Luca450Mhz
| Inviato il: 16/4/2013,17:00
|
Funzica!!! Appena tornato caricato nuovo firmware, il mio programmino, e va!!! Ora mi manca solo che qualcuno mi dia il codice per attivare il Platform.......... Jumpy credo sia irrintracciabile questi giorni..
--------------- Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048. Batterie: 24 elementi trazione pesante 315Ah C5 48V.
| | | | NonSoloBolleDiAcqua
| Inviato il: 17/4/2013,06:58
|
Mi piace questo silenzio.... è decisamente un buon segno!
--------------- 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: 17/4/2013,09:25
|
Facciamo un ultimo sforzo ed implementiamo il comando IF THEN, cioè il then può essere seguito da una istruzione...call o altro.
IF CONDIZIONE THEN ISTRUZIONE
ATTENZIONE: se l'IF THEN contiene una istruzione non può avere l'ELSE.
Facciamo un esempio
CODICE IF A THEN :LAB1 ...
:LAB1 C=0 ...
Nella nuova versione si potrà scrivere:
Possiamo vedere che il codice si semplifica ma il compilatore non sarà in grado di ottimizzare il codice...quindi avremo codici un pelino più grandi. Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | | | | MarKoZaKKa
| Inviato il: 17/4/2013,10:20
|
MENU "?" -selezionando la voce "Info" appare "Runtime Error 53 file not found" e chiude il compiler -i link ai documenti non funzionano.
funzione RENUM -quando si rinumera, alla fine del processo il menu SAVE è disabled... salva in automatico? Anche se si ricompila, rimane tale; bisogna andare su FILE>SaveAs
FIND/REPLACE -sarebbero utili degli shortcut da tastiera oppure la ricerca automatica della successiva occorrenza dopo aver fatto il replace
DEBUGGER -la finestrella EEPROM dovrebbe "scrollare" man mano che vengono fatte operazioni sulla eeprom, per consentire la visione effettiva di quanto accade -le linee di input che hanno la pullup interna, dovrebbero andare automaticamente "alto" quando impostate come input,per conformità con quanto accade in hardware -nell'area WATCH, se si inserisce un vettore o una formula errata, appare una finestra "ERRORE EXPR" dalla quale non è possibile uscire: si dovrebbe fermare l'esecuzione e segnalare quale sia l'espressione sbagliata
MEMORIA ESTERNA - il mio codice domotico, che con la 3.2 occupava 1699token, con la 4.1.3 ne occupa 2343!!!
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | Luca450Mhz
| Inviato il: 17/4/2013,10:25
|
E già che si parla di migliorie al compilatore... non sarebbe meglio eliminare quei, perdonami Bolle, fastidiosissimi BEEP, che si sentono all'apertura del compilatore stesso? Hanno un significato particolare?
--------------- Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048. Batterie: 24 elementi trazione pesante 315Ah C5 48V.
| | | | NonSoloBolleDiAcqua
| Inviato il: 17/4/2013,10:34
|
CITAZIONE (MarKoZaKKa @ 17/4/2013, 11:20) MENU "?" -selezionando la voce "Info" appare "Runtime Error 53 file not found" e chiude il compiler -i link ai documenti non funzionano. La versione beta va sovrascritta su una istallazione...è normale che accada. Basta che copi il file leggimi.txt e il manuale di riferimento.
Agli altri gli do un'occhiata!
CITAZIONE (Luca450Mhz @ 17/4/2013, 11:25) E già che si parla di migliorie al compilatore... non sarebbe meglio eliminare quei, perdonami Bolle, fastidiosissimi BEEP, che si sentono all'apertura del compilatore stesso? Hanno un significato particolare? Sono stati messi perchè sono belli..
CITAZIONE (MarKoZaKKa @ 17/4/2013, 11:20) MEMORIA ESTERNA - il mio codice domotico, che con la 3.2 occupava 1699token, con la 4.1.3 ne occupa 2343!!! Se si scrive il codice nello stesso modo...occupa lo stesso spazio...mentre se si mettono Soubroutine, Funzioni...lo spazio del codice aumenta...purtroppo è l'amaro prezzo da pagare e non si può far nulla!
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | MarKoZaKKa
| Inviato il: 17/4/2013,11:30
|
CITAZIONE (NonSoloBolleDiAcqua @ 17/4/2013, 11:34) La versione beta va sovrascritta su una istallazione...è normale che accada. Basta che copi il file leggimi.txt e il manuale di riferimento. il leggimi.txt è nella stessa cartella e il PDF nella cartella DOC... ma ho tutto nel drive Z: e non in C:, ma comunque non funziona lo stesso, sia messo in C:\PPTEA, sia in C:\Programmi\PPTEA, per me non è un problema, è una rifinitura...
CITAZIONE (Luca450Mhz @ 17/4/2013, 11:25) ...fastidiosissimi BEEP, che si sentono all'apertura del compilatore stesso? Quando il mio laptop è alimentato a rete, funziona il mute dell'altoparlante... alimentato a batteria no (presumibilmente per poter dare il segnale acustico di batt scarica)... e quando lo uso a batteria col pptea? di notte sul divano...
CITAZIONE Se si scrive il codice nello stesso modo...occupa lo stesso spazio...mentre se si mettono Soubroutine, Funzioni...lo spazio del codice aumenta...purtroppo è l'amaro prezzo da pagare e non si può far nulla! Il codice è lo stesso, non l'ho ancora riscritto, l'ho solo ricompilato... avevo usato molto il GOSUB, però...
...Un'occhiata al funzionamento della CADSEQ nel debugger, anche... sembra che non finiscano i valori negli elementi del vettore
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | Master Digit
| Inviato il: 17/4/2013,14:02
|
Fichissimo Tutto!!!
Solo una cosetta. Io, purtroppo, vengo dal BASIC del vecchio Commodore 64 (solo a vederlo scritto ho nostalgia) e avevo mal interpretato le SUB. Pensavo che le SUB fossero delle Routine che girassero indipendentemente dal programma principale, per esempio: una Subroutine mette ad 1 un bit di uscita se il valore del CADS1 è maggiore di 512 o a 0 se minore di 513, nello stesso tempo il programma principale scrive sul display il valore del CADS1 looppando su se stesso in quanto la subroutine gira indipendentemente. Purtroppo ho visto che non è così, tipo questo programma:
PRAGMA NO_NUM_LINE '-------------- COSTANTI ---------------------- CONSTANT POS_GIORNO_DISPLAY=&H19 CONSTANT POS_ORA_DISPLAY=&H21 CONSTANT POS_TEMPERATURA_DISPLAY=&H2B CONSTANT SIMB_GRADI_CENTIGRADI=223 CONSTANT NUM_ELEMENTI_MEDIA=20 '-------------- VETTORE DI MEMORIA --------- DIM MEM(NUM_ELEMENTI_MEDIA) AS WORD '------------------ PROGRAMMA --------------- SUB MAIN CALL PRESENTAZIONE WHILE TRUE CALL RILEVA_TEMPERATURA CALL MEDIA_DELLA_TEMPERATURA CALL VISUALIZZA_SUL_DISPLAY WAITS 1 LOOP SUBEND '--------------INIZIO SUBROUTINE --------------- '-----------PRESENTAZIONE INIZIALE ------- SUB PRESENTAZIONE LCDWRITE="PPTEA" SUBEND '---RILEVA LA TEMPERATURA SUL CADS1--- SUB RILEVA_TEMPERATURA TEMP=CADS1*CAD_TO_TEMP IND=(INDICE MOD NUM_ELEMENTI_MEDIA) +1 MEM(IND)=TEMP*10 INDICE++ SUBEND '---EFFETTUA LA MEDIA DELLA TEMPERATURA--- SUB MEDIA_DELLA_TEMPERATURA CLR G T=0.0 :ELAB G++ T+=MEM(G) IF G>=NUM_ELEMENTI_MEDIA THEN :SAL_TEMP IF G<indice THEN :ELAB :SAL_TEMP T/=G T/=10 SUBEND '---VISUALIZZA I DATI SUL DISPLAY--- SUB VISUALIZZA_SUL_DISPLAY LCDPOS=POS_GIORNO_DISPLAY LCDWRITE=LEFT(DATE, 8) ' GIORNO LCDPOS=POS_ORA_DISPLAY LCDWRITE=MID(DATE, 10,8) ' ORA LCDPOS=POS_TEMPERATURA_DISPLAY LCDWRITE=LEFT(T&"",4) & CHR(SIMB_GRADI_CENTIGRADI) & "C" SUBEND '--------------FINE SUBROUTINE ---------------
che potrebbe tranquillamente essre scritto così:
10 '-------------- COSTANTI ---------------------- 20 CONSTANT POS_GIORNO_DISPLAY=&H19 30 CONSTANT POS_ORA_DISPLAY=&H21 40 CONSTANT POS_TEMPERATURA_DISPLAY=&H2B 50 CONSTANT SIMB_GRADI_CENTIGRADI=223 60 CONSTANT NUM_ELEMENTI_MEDIA=20 70 '-------------- VETTORE DI MEMORIA --------- 80 DIM MEM(NUM_ELEMENTI_MEDIA) AS WORD 90 '------------------ PROGRAMMA --------------- 100 GOSUB 180 110 GOSUB 210 120 GOSUB 270 130 GOSUB 370 140 WAITS 1 150 GOTO 110 160 '--------------INIZIO SUBROUTINE --------------- 170 '-----------PRESENTAZIONE INIZIALE ------- 180 LCDWRITE="PPTEA" 190 RETURN 200 '---RILEVA LA TEMPERATURA SUL CADS1--- 210 TEMP=CADS1*CAD_TO_TEMP 220 IND=(INDICE MOD NUM_ELEMENTI_MEDIA) +1 230 MEM(IND)=TEMP*10 240 INDICE++ 250 RETURN 260 '---EFFETTUA LA MEDIA DELLA TEMPERATURA--- 270 CLR G 280 T=0.0 290 :ELAB G++ 300 T+=MEM(G) 310 IF G>=NUM_ELEMENTI_MEDIA THEN :SAL_TEMP 320 IF G<indice THEN :ELAB 330 :SAL_TEMP T/=G 340 T/=10 350 RETURN 360 '---VISUALIZZA I DATI SUL DISPLAY--- 370 LCDPOS=POS_GIORNO_DISPLAY 380 LCDWRITE=LEFT(DATE, 8) ' GIORNO 390 LCDPOS=POS_ORA_DISPLAY 400 LCDWRITE=MID(DATE, 10,8) ' ORA 410 LCDPOS=POS_TEMPERATURA_DISPLAY 420 LCDWRITE=LEFT(T&"",4) & CHR(SIMB_GRADI_CENTIGRADI) & "C" 430 RETURN 440 '--------------FINE SUBROUTINE --------------- oltre che occupare meno spazio nel secondo modo (si passa da 176 token a 169 token)
Mi sembrava troppo bello che avesse una gestione multitasking. Comunque a parte ciò che pensavo rimane sempre un bellissimo progettone, complimentoni ancora specialmente alll'elettricista che ha ancora le lampadine ben accese
Master Digit
--------------- Sono sempre disponibile...quando ci sono!
| | | | Luca450Mhz
| Inviato il: 17/4/2013,14:18
|
Master Digit vuoi dire che il BASIC del Commodore 64 ti permetteva un'esecuzione contemporanea di righe di codice diverse? Mi sembra troppo strano.. io ho usato dei linguaggi di programmazione "vecchi" ma nessuno permetteva una cosa del genere..
--------------- Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048. Batterie: 24 elementi trazione pesante 315Ah C5 48V.
| | | | Master Digit
| Inviato il: 17/4/2013,14:32
|
No Luca450Mhz!!! Intendevo che il programma si scriveva in Basic classico con numeri di riga GOTO e GOSUB e non in SUB CALL senza numeri di riga, solo questo. Certo che il Commodore 64 non era multitasking e girava a 1Mhz, per l'appunto quando ho letto delle SUB (cosa per me sconosciuta) pensavo che il PPTEA fosse Multitasking....invece NO!
Master Digit
--------------- Sono sempre disponibile...quando ci sono!
| | | | NonSoloBolleDiAcqua
| Inviato il: 17/4/2013,14:41
|
XMaster infatti la cosa che ci preoccupava sulla versione ADVANCED era la non familiarità di coloro che usano i numeri di linea etc...infatti la parte dura è stata quella di mantenere la retro-compatibilità anche per non spaventare nessuno. Inoltre come dici più il linguaggio si alza di livello...più il codice aumenta. Servirebbe un ottimizzatore...non è detto che non venga fatto...ma per il momento ci limitiamo a fornire una release funzionante.
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | | | | ElettroshockNow
| Inviato il: 18/4/2013,09:27
|
HELP ME .......
L'istruzione CADSEQ non funzica .... o meglio funziona solo su CADS1 e qualsiasi CADS gli imposto legge solamente il CADS1
CADSEQ(V,2,55, 80) legge il CADS1 CADSEQ(V,3,55, 80) legge il CADS1
Help Help Help Help
| | | | NonSoloBolleDiAcqua
| Inviato il: 18/4/2013,11:11
|
CITAZIONE (ElettroshockNow @ 18/4/2013, 10:27) HELP ME ....... L'istruzione CADSEQ non funzica .... o meglio funziona solo su CADS1 e qualsiasi CADS gli imposto legge solamente il CADS1 CADSEQ(V,2,55, 80) legge il CADS1 CADSEQ(V,3,55, 80) legge il CADS1 Help Help Help Help Verifico.... solo per curiosità...hai impostato il numero di convertitori e anche che siano in input...vero?
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|