NonSoloBolleDiA...
| Inviato il: 7/5/2013,17:00
|
Dalla versione 4 si è passati alla versione ADVANCED...l'eabasic del PPTEA è diventato un pelino più potente...ma non ha perso le sue origini.
Mediante l'istruzione PRAGMA NO_NUM_LINE si possono eviare di scfrivere i numeri di linea...e con le SUB/CALL il codice acquisisce un più 'alto livello' di programmazione.
Vediamo un esempio di funzione MAX, cioè torna il massimo valore tra i due passati. Il codice mostra la sequenza di dati maggiori in progressione fino al valore 32767.L'esecuzione potrebbe durare molti secondi.
'------------------------------------------------------------------------------ 'Generazione di numeri casuali ...attendo il numero piu' alto dalla funzione Rnd 'Dalla Versione 4.2.0 del PPTEA '------------------------------------------------------------------------------ PRAGMA NO_NUM_LINE SUB MAIN WHILE VMAX<> 32767 VMAX=CALL MAX(VMAX, Rnd) IF VMAX <> OLDVMAX THEN PRINT I &"" & VMAX OLDVMAX=VMAX I++ LOOP PRINT "FINE RICERCA NUMERO PIU ALTO="& VMAX BEEP END SUBEND 'MAX:FUNZIONE TORNA IL VALORE PIU' ALTO TRA PAR1 e PAR2 SUB MAX(PAR1,PAR2) IF PAR1>=PAR2 THEN MAX=PAR1 ELSE MAX=PAR2 SUBEND
Modificato da NonSoloBolleDiAcqua - 8/5/2013, 16:30
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...
| |
| | NonSoloBolleDiA...
| Inviato il: 8/5/2013,15:08
|
Vediamo un altro esempio che visualizza orario e temperatura su un display 16x2 mediante il RealTimeClock e un lm35:
'----------------------------------------------------------------------------------------------' ' VISUALIZZA SU UN DISPLAY 16x2 ORARIO (RTC) E TEMPERATURA (LM35) ' ' FIRMWARE RICHIESTO: PPTEA ADVANCED 4.2.0 o SUPERIORE ' ' AUTORE : NonSoloBolleDiAcqua ' '----------------------------------------------------------------------------------------------' PRAGMA NO_NUM_LINE ' PERMETTE DI EVITARE I NUMERI DI LINEA
'-------------- COSTANTI ---------------------- CONSTANT POS_GIORNO_DISPLAY=&H19 'POSIZIONE DEL DISPLAY DOVE VISUALIZZARE IL GIORNO CONSTANT POS_ORA_DISPLAY=&H23 'POSIZIONE DEL DISPLAY DOVE VISUALIZZARE L'ORA E I MINUTI CONSTANT POS_TEMPERATURA_DISPLAY=&H2B 'POSIZIONE DEL DISPLAY DOVE VISUALIZZARE LA TEMPERATURA CONSTANT SIMB_GRADI_CENTIGRADI=223 'CODICE DEL DISPLAY DEL SIMBOLO DEI GRADI CENTIGRADI CONSTANT NUM_ELEMENTI_MEDIA=20 'NUMERO DI ELEMENTI DI CUI FARE LA MEDIA
'-------------- VETTORE DI MEMORIA --------- DIM MEM(NUM_ELEMENTI_MEDIA) AS WORD ' MEMORIZZA LE ULTIME LETTURE DELLA TEMPERATURA
'------------------ PROGRAMMA --------------- SUB MAIN CALL PRESENTAZIONE WHILE TRUE CALL RILEVA_TEMPERATURA CALL MEDIA_DELLA_TEMPERATURA CALL VISUALIZZA_DISPLAY WAITS 1 LOOP SUBEND '--------------INIZIO SUBROUTINE ---------------
'-----------PRESENTAZIONE INIZIALE ------- SUB PRESENTAZIONE LCDWRITE="PPTEA" SUBEND
'---RILEVA LA TEMPERATURA SUL CADS1--- SUB RILEVA_TEMPERATURA IND=(INDICE MOD NUM_ELEMENTI_MEDIA) +1 MEM(IND)=CADS1*CAD_TO_TEMP * 10 ' CADS1 * CAD_TO_TEMP E' IL VALORE DELLA TEMPERATURA RILEVATO SUL PIN 2 INDICE++ SUBEND
'---EFFETTUA LA MEDIA DELLA TEMPERATURA--- SUB MEDIA_DELLA_TEMPERATURA T=0.0 G=1 WHILE G<=NUM_ELEMENTI_MEDIA AND G<=INDICE T+=MEM(G) G++ LOOP T/=(G-1)*10 SUBEND
'---VISUALIZZA I DATI SUL DISPLAY--- SUB VISUALIZZA_DISPLAY LCDPOS=POS_GIORNO_DISPLAY LCDWRITE=LEFT(DATE, 8) ' GIORNO LCDPOS=POS_ORA_DISPLAY LCDWRITE=MID(DATE, 10,5) ' ORA LCDPOS=POS_TEMPERATURA_DISPLAY LCDWRITE=LEFT(T&"",4) & CHR(SIMB_GRADI_CENTIGRADI) & "C" SUBEND '--------------FINE SUBROUTINE ---------------
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...
| |
| | |
|
Versione Completa!
|