Se sei già registrato           oppure    

Orario: 19/03/2024 04:50:18  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA

VISUALIZZA L'ALBUM

Pagine: (2)   1   [2]    (Ultimo Msg)


PPTEA ECO ALARM
FinePagina

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:20:09

quindi dopo circa 3 anni e mezzo ho ripreso in mano il codice ed ho provato a vedere se potevo in qualche modo implementare la gestione delle due abat-jour, ma dopo qualche giorno mi sono reso conto che se lo rifacevo di sana pianta sarebbe stato meglio e cosi' ho fatto.
quindi prendendo spunto dal progetto originale, ho risteso l'intero codice, apportando delle modifiche e rendendolo spero piu' comprensibile per eventuali aggiornamenti futuri....

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:22:42

in sostanza la differenza sta' nel fatto che questa volta, il codice controlla le due abat-jour, che vengono alimentante dal pic mediante due mosfet irf630.

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:27:52

naturalamente ho apportato modifiche alle abat-jour che fino ad ora erano dotate di un normalissimo interruttore on/off, mentre adesso adottano dei pulsanti che alla loro pressione attivano un timer gestito dal pptea. tale timer naturalmente e' settabile dal pic durante lo svolgimento del programma entrando nel setup.
questo tempo puo'variare da 0 a 59 minuti.
una volta premuto il pulsante corrispondente ad ogni singola abat-jour, si illumina il display indicando data, ora, temperatura e stato dell'allarme e nello stesso tempo viene accesa la luce a led corrispondente. se viene premuto nuovamente la luce si spenge.

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:31:16

gli stessi pulsanti delle abat-jour possono essere usati per spengere l'allarme durante la suoneria, senza doverla disattivare direttamente dal pptea.
sempre in questa fase (quando l'allarme suona), le due abat-jour lampeggiano simultaneamente, tornando nella loro posizione (quindi accese o spente) dopo la fine della suoneria.

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:36:22

anche alla basetta dove vi e' il pptea ho dovuto apportare delle modifiche, aggiungendo i due mosfet e relative resistenze piu' le due resistenze da 1kohm per i pulsanti.

http://www.energialternativa.info/public/newforum/ForumEA/Q/IMG_20170226_093428.jpg

http://www.energialternativa.info/public/newforum/ForumEA/Q/220220176431.jpg

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:39:38

questo e' un particolare del settaggio del tempo di spegnimento delle abat-jour
http://www.energialternativa.info/public/newforum/ForumEA/Q/220220176430.jpg

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:50:47

rimane sempre un'unico tasto per tutte le operazioni, ossia impostare la sveglia, modificare l'ora ed i tempi di spegnimento delle abat-jour.

praticamente rispetto al vecchio codice ora all'accenzione, dopo una breve presentazione parte direttamente il programma.

alla prima pressione del tasto si accende l'illuminazione del display che si spenge automaticamente dopo 5 secondi.

se in questi 5 secondi si preme nuovamente il tasto si entra in modalita' setup che e' un menu' a scorrimento automatico, ossia se non si preme niente questo avanza da solo nel seguente modo:

set alarm > set time & date > abat jour time

si puo' entrare nel settaggio soltanto premento il tasto. una volta premuto, i paramentri corrispondenti alla dicitura in questione esempio set alarm inizieranno a lampeggiare, prima l'ora, poi i minuti, dopodiche' si passa al prossimo settaggio (set date e time).

ogni paramentro aspetta circa 5 secondi senza alcuna pressione per passare a quello succesivo.

se durante il settaggio di un parametro, il tasto viene rimane premuto, l'incremento del parametro aumenta a velocita' piu' sostenuta in modo da poter impostare i paramentri piu' velocemente.

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:53:18

per le uscite delle due abat-jour ho utilizzato i bit 0 ed 1, il bit 2 per rilevare la temperatura, il bit 3 per il tasto del setup, mentre il bit 4 e 5 sono i tast delle abat-jour.
il bit 6 e' usato per la retroilluminazione del display, mentre il bit 15 per il buzzer.

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/02/2017 09:55:41

questo e' il nuovo codice inserito nel pic, ho sostituito la memoria con una da 4k....

PRAGMA ADVANCED
PRAGMA NO_NUM_LINE

'-----PPTEA ECO ALARM EVOLUTION----
'
' VERSION               : 1_8
'START                     : 02_02_2017
'LAST UPDATE       : 24_02_2017
'MEMORY USED    : 2235  TOKEN   26 %
'COMPILIER USED : 4_2_7B
'EXT. MEMORY      : 4K (24C32)
'FIRMAWARE PIC  : 4_2_4
'VARIABLE USED   : 42


'-----SETTAGGI INIZIALI------

PRAGMA EXTENDED4K_EEPROM  'MEMORY 24C32
SETIO=&B010000000000111100        'DISPLAY LIBERO TEMPERATURA CADS3=BIT2


'-----DEFINIZIONE BIT------

'BIT(0)=OUTPUT=ABAT JOUR A
'BIT(1)=OUTPUT=ABAT JOUR A
'BIT(2)=CADS(3)=TEMPERATURA
'BIT(3)=INPUT=TASTO PRINCIPALE
'BIT(4)=INPUT=TASTO ABAT JOUR A
'BIT(5)=INPUT=TASTO ABAT JOUR B
'BIT(6)=OUTPUT=ILLUMINAZIONE DISPLAY
'BIT(15)=OUTPUT=BUZZER
  

'----CONSTANT----

CONSTANT VERSION="1.8"
CONSTANT ATTESA=2                                'SOSPENSIONE DISPLAY PRESENTAZIONE INIZIALE (SECONDI)                   
CONSTANT POS_1=1
CONSTANT POS_2=11
CONSTANT POS_3=65
CONSTANT POS_4=75
CONSTANT CAMP=99                                  'NUMERO CAMPIONAMENTI X  RILEVAMENTO TEMPERATURA
CONSTANT DELAY_DISPLAY=5                'TEMPO SPEGNIMENTO DISPLAY (SECONDI)
CONSTANT DELAY_SET_DEFAULT=200   'TEMPO LAMPEGGIO DURANTE IL SETTAGGIO PARAMETRI (MILLISECONDI)
CONSTANT DELAY_SET=5                          'TEMPO PASSAGGIO TRA UN PARAMETRO E L'ALTRO DURANTE IL SETTAGGIO (SECONDI)
CONSTANT C=250                                         'ATTESA PRESSIONE PULSANTE NEL MENU SET UP



'VOLUME=5

'-----------------------------------------------------
'RICHIAMA DATI MEMORIA INTERNA PIC
'-----------------------------------------------------

EEXTERNAL=0
CELL=1
ALARM_HOUR=REEPROM
CELL=2
ALARM_MINUTE=REEPROM
CELL=3
STATO_ALLARME=REEPROM
CELL=4
ABAT_MINUTE=REEPROM

CLR VARIANTE_SETTAGGIO   'NEL SETTAGGIO CON VALORE 0 IMPOSTA NUMERI CON VALORE 1 ON/OFF
FLASH="  "                                   'BLINK DURANTE IL SETTAGGIO 2 SPAZI DI DEFAULT 
DELAY_SETTAGGIO=DELAY_SET_DEFAULT


'-----VARIABILI USATE---------

'ALARM_HOUR                    =ORA ALLARME
'ALARM_MINUTE                =MINUTI ALLARME
'ABAT_MINUTE                   =MINUTI ACCENZIONE ABAT JOUR DOPO PRESSIONE DEL PULSANTE
'B                                            =VARIABILE JOLLY USATA PER I SUONI ORARI, QUARTI E ALLARME
'C                                            =USATA PER L'ATTESA DELLA PRESSIONE DEL PULSANTE
'D                                            =VIABILE JOLLY USATA PER I SUONI
'MESSAGE                            =CAMBIA VISUALIZZAZIONE SUL DISPLAY
'MESSAGE_1                        =MESSAGGIO SUL DISPLAY  ALTO A SX
'MESSAGE_2                        =MESSAGGIO SUL DISPLAY  ALTO A DX
'MESSAGE_3                        =MESSAGGIO SUL DISPLAY BASSO SX
'MESSAGE_4                        =MESSAGGIO SUL DISPLAY BASSO DX
'DAY                                     =GIORNO
'MONTH                               =MESE
'YEAR                                   =ANNO
'HOUR                                  =ORA
'MINUTE                              =MINUTI
'SECOND                             =SECONDI
'POMERIGGIO                    =USATA PER I SUONI ORARI NELLA FASE POMERIDIANA
'DELAY                                =USATA PER RILEVARE IL VALORE MOMENTANO DEL TIMER PER SPENGERE IL DISPLAY
'INST_TEMP                        =TEMPERATURA ISTANTANEA RILEVATA SUL CADS
'TOT_TEMP                         =TOTALE VALORI TEMPERATURA, VARIABILE USATA PER FARE LA MEDIA
'MED_TEMP                        =MEDIA TEMPERATURA
'RILEV                                  =VARIABILE USATA PER CONFRONTARLA CON NUMERO CAMPI PER POI FARE LA MEDIA
'STATO_ALLARME            =ASSUME VALORE 0 OPPURE 1  0=ALLARME DISATTIVATO 1=ATTIVATO
'STR_STATO_ALLARME   =STRINGA STATO ALLARME
'STR_VALUE                       =STRINGA DURANTE IL SETTAGGIO DEI VALORI
'FLASH                                 =BLINK DURANTE IL SETTAGGIO
'VARIANTE_SETTAGGIO  =VARIABILE USATA PER SETTARE NUMERI OPPURE ON/OFF 0=NUMERI 1=ON/OFF
'ABAT_A                              =ABAT JOUR A 0 SPENTA 1 ACCESA
'ABAT_B                              =ABAT  JOUR B 0 SPENTA 1 ACCESA
'RIFERIMENTO_A              =RIFERIMENTO TIMER PER SPEGNIMENTO ABAT A
'RIFERIMENTO_B              =RIFERIMENTO TIMER PER SPEGNIMENTO ABAT B
'PASSATI_A                        =SECONDI PASSATI ACCENZIONE ABAT A
'PASSATI_B                        =SECONDI PASSATI ACCENZIONE ABAT B
'RIMASTI_A                        =SECONDI RIMASTI ACCENZIONE ABAT A
'RIMASTI_B                        =SECONDI RIMASTI ACCENZIONE ABAT B



CALL INTRODUCTION

'-------------------------------------------------
:MAIN_ROUTINE
'-------------------------------------------------

GOTO :CONTROLLA_STATO_PULSANTE
:BACK_TO_CONTROLLA_STATO_PULSANTE

GOTO :CONTROLLA_STATO_PULSANTI_ABAT_JOUR
:BACK_TO_CONTROLLA_STATO_PULSANTI_ABAT_JOUR

CALL CHECK_DELAY_DISPLAY

GOTO :STANDARD
:BACK_TO_STANDARD

CALL VISUALIZZAZIONE
CALL ACQUISIZIONE_DATA_E_ORA
CALL CONTROLLA_STATO_ALLARME
CALL CONTROLLA_SUONO_QUARTI
CALL CONTROLLA_SUONO_ORARIO
CALL CONTROLLA_ALLARME
CALL CONTROLLA_ABAT_JOUR_A
CALL CONTROLLA_ABAT_JOUR_B
CALL RILEVA_TEMPERATURA
CALL CONTROLLA_TEMPERATURA

GOTO :MAIN_ROUTINE

'------------------------------
SUB INTRODUCTION
'------------------------------

CALL DISPLAY_LIGTH_ON
LCDCLEAR
LCDPOS=1
LCDWRITE="PPETA  ECO ALARM"
LCDPOS=66
LCDWRITE="EVOLUTION  "&VERSION
WAITS ATTESA
LCDCLEAR
SUBEND

'----------------------------------
SUB VISUALIZZAZIONE
'----------------------------------

LCDPOS=POS_1
LCDWRITE=MESSAGE_1
LCDPOS=POS_2
LCDWRITE=MESSAGE_2
LCDPOS=POS_3
LCDWRITE=MESSAGE_3
LCDPOS=POS_4
LCDWRITE=MESSAGE_4
SUBEND

'---------------------------------------------
SUB ACQUISIZIONE_DATA_E_ORA
'---------------------------------------------

DAY=LEFT(DATE,2)          
MONTH=MID(DATE,4,2)     
YEAR=MID(DATE,7,2)      
HOUR=MID(DATE,10,2)     
MINUTE=MID(DATE,13,2)   
SECOND=RIGHT(DATE,2) 
SUBEND

'------------------------------------
SUB RILEVA_TEMPERATURA
'------------------------------------

INST_TEMP=CADS3*CAD_TO_TEMP
TOT_TEMP+=INST_TEMP
SUBEND

'-------------------------------------------
SUB CONTROLLA_TEMPERATURA
'-------------------------------------------

RILEV++
IF RILEV < CAMP THEN RETURN

'---------------------------------------
'MEDIA TEMPERATURA
'---------------------------------------

MED_TEMP=TOT_TEMP/CAMP
CLR RILEV,TOT_TEMP
SUBEND

'-----------------------------------------
SUB CONTROLLA_ABAT_JOUR_A
'-----------------------------------------

IF ABAT_A=0 THEN SUBEND
PASSATI_ABAT_A=INT(TIMER)                                                                                                     'SECONDI PASSATI ABAT_A
RIMASTI_ABAT_A=(ABAT_MINUTE*60)-PASSATI_ABAT_A + RIFERIMENTO_ABAT_A     'SECONDI RIMANENTI ABAT_A
IF RIMASTI_ABAT_A>0 THEN SUBEND
OUTBIT(0)=0
CLR ABAT_A
SUBEND

'-----------------------------------------
SUB CONTROLLA_ABAT_JOUR_B
'-----------------------------------------

IF ABAT_B=0 THEN SUBEND
PASSATI_ABAT_B=INT(TIMER)                                                                                                     'SECONDI PASSATI ABAT_B
RIMASTI_ABAT_B=(ABAT_MINUTE*60)-PASSATI_ABAT_B + RIFERIMENTO_ABAT_B     'SECONDI RIMANENTI ABAT_B
IF RIMASTI_ABAT_B>0 THEN SUBEND
OUTBIT(1)=0
CLR ABAT_B
SUBEND

'-----------------------------------------------
SUB CONTROLLA_STATO_ALLARME
'-----------------------------------------------

IF STATO_ALLARME=0 THEN CALL ALLARME_OFF
IF STATO_ALLARME=1 THEN CALL ALLARME_ON
SUBEND

'------------------------------------
SUB ALLARME_OFF
'------------------------------------

STR_STATO_ALLARME=" OFF"
SUBEND

'------------------------------------
SUB ALLARME_ON
'------------------------------------

STR_STATO_ALLARME=" ON "
SUBEND

'------------------------------------
SUB CONTROLLA_ALLARME
'------------------------------------

IF STATO_ALLARME=0 THEN RETURN
IF HOUR=ALARM_HOUR AND MINUTE=ALARM_MINUTE  AND SECOND<2 THEN CALL SUONA_ALLARME
SUBEND

'----------------------------
SUB SUONA_ALLARME
'----------------------------

CALL DISPLAY_LIGTH_ON
REPEAT
D++
WAITMS 500
REPEAT 
B++
OUTBIT(0)=1
OUTBIT(1)=1
IF INPBIT(3)=1 OR INPBIT(4)=1 OR INPBIT(5)=1 THEN :INTERROMPE_ALLARME
FRQ  _FA6,200
WAITMS 10
UNTIL B<4
OUTBIT(0)=0
OUTBIT(1)=0
CLR B
UNTIL D<10

'-------------------------------
:INTERROMPE_ALLARME
'-------------------------------

OUTBIT(0)=0
OUTBIT(1)=0
IF ABAT_A=1 THEN CALL ACCENDE_ABAT_A_DOPO_ALLARME
IF ABAT_B=1 THEN CALL ACCENDE_ABAT_B_DOPO_ALLARME
CLR B,D
SUBEND

'---------------------------------------------
SUB CONTROLLA_SUONO_QUARTI
'---------------------------------------------

IF MINUTE=15 AND SECOND<1 OR MINUTE=30 AND SECOND<1  OR MINUTE=45 AND SECOND<1 THEN CALL SUONA_QUARTI
SUBEND

'-----------------------------
SUB SUONA_QUARTI
'-----------------------------

CALL DISPLAY_LIGTH_ON
WAITMS 500
REPEAT
FRQ _LA6,500
WAITMS 500
B++
UNTIL B < (MINUTE/15)
CLR B
WAITMS 500
SUBEND

'------------------------------------------------
SUB CONTROLLA_SUONO_ORARIO
'------------------------------------------------

IF MINUTE=0 AND SECOND<2 THEN CALL SUONO_ORARIO
SUBEND

'---------------------------
SUB SUONO_ORARIO
'---------------------------

WAITMS 500
POMERIGGIO=0

IF HOUR=0 THEN RETURN
IF HOUR<13  THEN :MATTINO

'---------------------
:POMERIGGIO
'---------------------

POMERIGGIO=12

'---------------------
:MATTINO
'---------------------

CALL DISPLAY_LIGTH_ON
REPEAT
B++
FRQ _SOL6,250
WAITMS 750
UNTIL B< (HOUR-POMERIGGIO)
CLR B
WAITMS 500
SUBEND

'-----------------------------------
SUB RILEVA_TIMER
'-----------------------------------

DELAY=TIMER
SUBEND

'---------------------------------
 SUB DISPLAY_LIGTH_ON
'---------------------------------

CALL RILEVA_TIMER
OUTBIT(6)=1
SUBEND

'--------------------------------------
SUB CHECK_DELAY_DISPLAY
'--------------------------------------

IF TIMER > (DELAY+DELAY_DISPLAY) THEN CALL DISPLAY_LIGTH_OFF
SUBEND

'-------------------------------------
SUB DISPLAY_LIGTH_OFF
'-------------------------------------

OUTBIT(6)=0
SUBEND

'------------------------------------------------
:STANDARD
'------------------------------------------------

'----MESSAGGIO DATA E ORA----

MESSAGE_1=MID(DATE,1,8)&"  "                                                 'GIORNO,MESE,ANNO  PRIMA RIGA
IF MED_TEMP=0 THEN :TEMPERATURA_NON_RILEVATA

'---MESSAGGIO TEMPERATURA----

MESSAGE_2=""&LEFT(MED_TEMP,4)&CHR(223)&"C"              'TEMPERATURA
GOTO :TEMPERATURA_RILEVATA

'---MESSAGIO TEMPERATURA NON RILEVATA---

'---------------------------------------------
:TEMPERATURA_NON_RILEVATA
'---------------------------------------------

MESSAGE_2="      " 'TEMPERATURA UGUALE A ZERO

'---------------------------------------------
:TEMPERATURA_RILEVATA
'---------------------------------------------

'----MESSAGGIO ORE E MINUTI---

MESSAGE_3=MID(DATE,10,8)    'ORE E MINUTI

'---MESSAGGIO STATO ALLARME---

IF STATO_ALLARME=0 THEN :ALLARME_DISINSERITO

MESSAGE_4=""&RIGHT("00"&ALARM_HOUR,2)&":"&RIGHT("00"&ALARM_MINUTE,2)
GOTO :BACK_TO_STANDARD

'-------------------------------------
:ALLARME_DISINSERITO
'-------------------------------------

MESSAGE_4=STR_STATO_ALLARME  'STATO ALLARME OFF OPPURE ORARIO ALLARME
GOTO :BACK_TO_STANDARD

'----------------------------------------------
:CONTROLLA_STATO_PULSANTE
'----------------------------------------------

IF INPBIT(3)=1 THEN :PULSANTE_PREMUTO
GOTO :BACK_TO_CONTROLLA_STATO_PULSANTE

'-----------------------------------------------
:PULSANTE_PREMUTO
'-----------------------------------------------
 
WAITMS 150
CALL DISPLAY_LIGTH_ON
CALL RILEVA_TIMER
WAITMS 150

'-----------------------
:ATTESA_SET_UP
'-----------------------

REPEAT
A++
IF INPBIT(3)=1 THEN :SET_ALARM
UNTIL A<C
CLR A
GOTO :BACK_TO_CONTROLLA_STATO_PULSANTE

'--------------------
:SET_ALARM
'--------------------

CLR A
WAITMS 150
LCDCLEAR
MESSAGE_1="SET ALARM        "
MESSAGE_2=""
MESSAGE_3=""&RIGHT("00"&ALARM_HOUR,2)&":"&RIGHT("00"&ALARM_MINUTE,2)&STR_STATO_ALLARME
MESSAGE_4=""
CALL VISUALIZZAZIONE
WAITMS 150
REPEAT
A++
IF INPBIT(3)=1 THEN :SET_ALARM_TIME
UNTIL A<C
CLR A

'----------------------
:SET_DATE_TIME
'----------------------

CLR A
WAITMS 150
LCDCLEAR
MESSAGE_1="SET DATE "&CHR(38)&" TIME "
MESSAGE_2=""
MESSAGE_3=MID(DATE,1,14)
MESSAGE_4=""
CALL VISUALIZZAZIONE
WAITMS 150
REPEAT
A++
IF INPBIT(3)=1 THEN :SET_DATE_TIME_FASE_2
UNTIL A<C
CLR A

'-----------------------------
:SET_ABAT_JOUR
'-----------------------------

CLR A
WAITMS 150
LCDCLEAR
MESSAGE_1="ABAT JOUR TIME"
MESSAGE_2=""
MESSAGE_3=""&RIGHT("00"&ABAT_MINUTE,2)&":00 MINUTES"
MESSAGE_4=""
CALL VISUALIZZAZIONE
WAITMS 150
REPEAT
A++
IF INPBIT(3)=1 THEN :SET_ABAT_JOUR_TIME
UNTIL A<C
CLR A
LCDCLEAR
GOTO :BACK_TO_CONTROLLA_STATO_PULSANTE

'----------------------------
:SET_ALARM_TIME
'----------------------------

'----ORA_ALLARME---

CLR A
VALUE=ALARM_HOUR/1
MAX_VALUE=24
MIN_VALUE=0
POS_VALUE=POS_3

GOSUB :SETTAGGIO_PARAMETRO
ALARM_HOUR=VALUE

'---MINUTI_ALLARME---

VALUE=ALARM_MINUTE/1
MAX_VALUE=60
MIN_VALUE=0
POS_VALUE=POS_3+3
GOSUB :SETTAGGIO_PARAMETRO
ALARM_MINUTE=VALUE

'---STATO ALLARME---

VARIANTE_SETTAGGIO=1
FLASH="   "
VALUE=STATO_ALLARME/1
MAX_VALUE=2
MIN_VALUE=0
POS_VALUE=POS_3+6
GOSUB :SETTAGGIO_PARAMETRO
STATO_ALLARME=VALUE
FLASH="  "
CLR VARIANTE_SETTAGGIO

'---------------------------------------------------------------
'SALVATAGGIO_PARAMETRI_ALLARME
'---------------------------------------------------------------

EEXTERNAL=0
CELL=1
WEEPROM=ALARM_HOUR
CELL=2
WEEPROM=ALARM_MINUTE
CELL=3
WEEPROM=STATO_ALLARME


WAITS 1

GOTO :SET_DATE_TIME

'----------------------------------------------
:SET_ABAT_JOUR_TIME
'----------------------------------------------

'----SET ABAT MINUTE----

VALUE=ABAT_MINUTE/1
MAX_VALUE=60
MIN_VALUE=0
POS_VALUE=POS_3

GOSUB :SETTAGGIO_PARAMETRO
ABAT_MINUTE=VALUE

'---SALVATAGGIO_PARAMETRI_ABAT_JOUR----

EEXTERNAL=0
CELL=4
WEEPROM=ABAT_MINUTE

WAITS 1
LCDCLEAR
GOTO :BACK_TO_CONTROLLA_STATO_PULSANTE

'---------------------------------------------------
:SET_DATE_TIME_FASE_2
'---------------------------------------------------

CLR A

'---SET DAY----

VALUE=DAY/1
MAX_VALUE=32
MIN_VALUE=1
POS_VALUE=POS_3

GOSUB :SETTAGGIO_PARAMETRO
DAY=RIGHT("00"&VALUE,2)

'---SET MONTH---

VALUE=MONTH/1
MAX_VALUE=13
MIN_VALUE_=1
POS_VALUE=POS_3+3
GOSUB :SETTAGGIO_PARAMETRO
MONTH=RIGHT("00"&VALUE,2)

'---SET YEAR----

VALUE=YEAR/1
MAX_VALUE=99
MIN_VALUE=17
POS_VALUE=POS_3+6
GOSUB :SETTAGGIO_PARAMETRO
YEAR=RIGHT("00"&VALUE,2)

'---SET HOUR---

VALUE=HOUR/1
MAX_VALUE=24
MIN_VALUE=0
POS_VALUE=POS_3+9
GOSUB :SETTAGGIO_PARAMETRO
HOUR=RIGHT("00"&VALUE,2)

'----SET MINUTE----

VALUE=MINUTE/1
MAX_VALUE=60
MIN_VALUE=0
POS_VALUE=POS_3+12
GOSUB :SETTAGGIO_PARAMETRO
MINUTE=RIGHT("00"&VALUE,2)

'---------------------------------------------------------------
'IMPOSTA NUOVA DATA E TEMPO
'---------------------------------------------------------------

NEWSET=DAY & "/" & MONTH & "/" & YEAR & " " & HOUR & ":" & MINUTE & ":00 1"
SETDATE=NEWSET
WAITS 1
GOTO :SET_ABAT_JOUR

'-----------------------------------------------------------
:SETTAGGIO_PARAMETRO
'-----------------------------------------------------------

CALL RILEVA_TIMER

'------------------------------------------------
:CONTINUA_SETTAGGIO_PARAMETRO
'------------------------------------------------

LCDPOS=POS_VALUE
LCDWRITE=""&FLASH
WAITMS DELAY_SETTAGGIO
LCDPOS=POS_VALUE
STR_VALUE=""&RIGHT("00"&VALUE,2)
IF VARIANTE_SETTAGGIO=1 THEN :VARIANTE_ON_OFF

'-----------------------------------------
:BACK_TO_VARIANTE_ON_OFF
'-----------------------------------------

LCDWRITE=""&STR_VALUE
WAITMS DELAY_SETTAGGIO
IF TIMER > (DELAY+DELAY_SET) THEN RETURN
IF INPBIT(3)=1 THEN :INCREMENTA_PARAMETRO
DELAY_SETTAGGIO=DELAY_SET_DEFAULT
GOTO :CONTINUA_SETTAGGIO_PARAMETRO

'-------------------------------------------------
:INCREMENTA_PARAMETRO
'-------------------------------------------------

CALL RILEVA_TIMER
VALUE++
DELAY_SETTAGGIO-=10
IF VALUE>=MAX_VALUE THEN :AZZERA_PARAMETRO
IF DELAY_SETTAGGIO<=20 THEN GOSUB :LAMPEGGIO_MINIMO
GOTO :CONTINUA_SETTAGGIO_PARAMETRO

'-------------------------------------------------
:AZZERA_PARAMETRO
'-------------------------------------------------

VALUE=MIN_VALUE
GOTO :CONTINUA_SETTAGGIO_PARAMETRO

'---------------------------
:VARIANTE_ON_OFF
'---------------------------

'---SCELTA_OFF-----

IF VALUE=1 THEN :SCELTA_ON
STR_VALUE="OFF"
GOTO :BACK_TO_VARIANTE_ON_OFF

'-----------------------
:SCELTA_ON
'-----------------------

STR_VALUE="ON"
GOTO :BACK_TO_VARIANTE_ON_OFF

'----------------------------------
:LAMPEGGIO_MINIMO
'----------------------------------

DELAY_SETTAGGIO=20
RETURN

'----------------------------------------------------------
:CONTROLLA_STATO_PULSANTI_ABAT_JOUR
'----------------------------------------------------------

IF INPBIT(4)=1 THEN CALL PULSANTE_ABAT_A_PREMUTO
IF INPBIT(5)=1 THEN CALL PULSANTE_ABAT_B_PREMUTO
GOTO :BACK_TO_CONTROLLA_STATO_PULSANTI_ABAT_JOUR

'----------------------------------------------
SUB PULSANTE_ABAT_A_PREMUTO
'----------------------------------------------

CALL DISPLAY_LIGTH_ON
IF ABAT_MINUTE=0 THEN SUBEND
ABAT_A=(ABAT_A+1) MOD 2
IF ABAT_A=1 THEN CALL ACCENDE_ABAT_A
IF ABAT_A=0 THEN CALL SPENGE_ABAT_A
SUBEND

'--------------------------------
SUB ACCENDE_ABAT_A
'--------------------------------

RIFERIMENTO_ABAT_A=INT(TIMER)

'-----------------------------------------------------
SUB ACCENDE_ABAT_A_DOPO_ALLARME
'-----------------------------------------------------

OUTBIT(0)=1
SUBEND

'--------------------------------
SUB SPENGE_ABAT_A
'--------------------------------

OUTBIT(0)=0
SUBEND

'-------------------------------------------
SUB PULSANTE_ABAT_B_PREMUTO
'-------------------------------------------

CALL DISPLAY_LIGTH_ON
IF ABAT_MINUTE=0 THEN SUBEND
ABAT_B=(ABAT_B+1) MOD 2
IF ABAT_B=1 THEN CALL ACCENDE_ABAT_B
IF ABAT_B=0 THEN CALL SPENGE_ABAT_B
SUBEND

'--------------------------------
SUB ACCENDE_ABAT_B
'--------------------------------

RIFERIMENTO_ABAT_B=INT(TIMER)

'---------------------------------------------------------
SUB ACCENDE_ABAT_B_DOPO_ALLARME
'---------------------------------------------------------

OUTBIT(1)=1
SUBEND

'--------------------------------
SUB SPENGE_ABAT_B
'--------------------------------

OUTBIT(1)=0
SUBEND

END




















































 

Bolle

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:9254

Stato:



Inviato il: 02/03/2017 00:08:20



---------------
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3509

Stato:



Inviato il: 11/03/2017 23:03:44


Ma guarda un po'!!
Leggendo dall'inizio ho scoperto di aver messo dei commenti e rileggendoli non mi ricordavo nemmeno di averli scritti...

Complimenti Andrea, il nome, almeno quello, spero di averlo ricordato giusto!



---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 14/03/2017 10:33:31

grazie pino....e' passato molto tempo.....
il nome e' giustissimo

 
 InizioPagina
 

Pagine: (2)   1   [2]    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum