PPTEA
PPTEA ADVANCED


FinePagina

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



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...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



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...

 
 InizioPagina
 

Versione Completa!

Home page     TOP100-SOLAR    Home page forum