Memorizza eventi

© by Vittorio Crapella

RICORDA E VISUALIZZA EVENTI

Dalla seguente richiesta :"Io vorrei realizzare un orologio che è in grado attraverso un ingresso dal mondo esterno , di memorizzare la chiusura di un contatto. In pratica, dovendo io capire in che momento della giornata e anche in che data avviene un certo evento che riuscirò a manifestare attraverso un contatto che si chiude, vorrei poter disporre di un registratore di eventi che sia in grado di memorizzare ora e data nella sua memoria e a scadenze fisse consultarlo rileggendo attraverso un display LCD..", é nato il seguente progetto:

Gli ingressi AUX (eventi ausiliari) sono per una futura espansione del sistema.

All'accensione la prima volta, non trovando già impostato GIORNO-ORE-MIN, passa all'impostazione DATA come videata -2- altrimenti riprende l’ultima ora-min-giorno e NR eventi precedentemente registrati in Eeprom e li mette a display come nella videata -1-.

GIORNO ORE : MIN

Nr. Eventi NR

VIDEATA -1-

Sono presenti tre pulsanti (DW-ENTER-UP)

Se non vi sono eventi da visualizzare, pigiando UP o ENTER si passa in modo impostazione data videata –2-

IMPOSTA GIORNO

UP=Si ENTER=Esc

VIDEATA -2-

Con ENTER torno alla videata normale -1- con il primo UP si passa al modo imposta giorno mostrando quello già presente in memoria o dal lunedì se non ancora impostato nessun giorno (videata –3-).

IMPOSTA GIORNO

LUNEDÌ

VIDEATA -3-

Con UP o DW successivi si incrementa o decremnta il giorno fino a quello desiderato.

Digitando ENTER passo all’impostazione ora (videata –4-)

IMPOSTA ORA

ORE : MIN

VIDEATA -4-

Usando UP o DW si incrementa o decremnta il numero che esprime l’ora voluta.

Con ENTER si passa all’impostazione minuti (videata -5-) sempre usando poi UP o DW fino ai minuti desiderati.

IMPOSTA MINUTI

ORE : MIN

VIDEATA -5-

Con un ulteriore ENTER si torna alla videata -1- .

In presenza di Eventi, che possono essere da 1 a 40 massimi, digitando un qualsiasi tasto mi appare la seguente videata :

VEDI EVENTI

UP=Si ENTER=Data

VIDEATA –6-

Con il tasto ENTER torno alla videata -3- mentre con UP passo a visualizzare gli eventi uno ad uno

GIORNO ORE : MIN

EVENTO Nr: 01

VIDEATA -7-

Con UP e DW visualizzo tutti gli eventi che voglio e per ognuno vedo il giorno , l’ora e minuti in cui è avvenuto l’evento. Si torna alla videata -1- pigiando ENTER.

In presenza della videata - 1- pigiando DW si possono verificare due eventi:

Se non è ancora avvenuta la sincronizzazione con un orologio campione per la correzione automatica del clok, apparirà la seguente videata:

CORREZIONE CLOK

UP=Ant. DW=Rit.

VIDEATA -8-

Pertanto DW in questo caso si dovrà digitare solo dopo aver eseguito la seguente procedura:

Cortocircuitare il ponticello hardware (pin 17 NMI a massa) per un breve istante per cancellare eventuali valori in EEeprom . Settare ore, minuti con 1 minuto avanti rispetto all'orologio campione e spegnere il circuito.

Riaccenderlo nello stesso istante che sull'orologio campione scatta lo stesso minuto impostato sull'orologio-eventi.

Per tarare con più precisione attendere diverse ore (4/12) e poi confrontare l'orologio-eventi se ritarda o anticipa rispetto a quello campione.

Se dovesse sballare più di un minuto ripetere l'operazione dall'inizio dimezzando le ore.

Osservare i secondi dell’orologio campione e a 52/53 secondi pigiare DW.

Apparirà la videata - 8 -

Attendere 00 secondi sull'orologio campione e pigiare UP se l'orologio-eventi anticipava o DW se ritardava. Da questo momento l'orologio-eventi dovrebbe essere al passo con quello campione.

L'aggiustamento viene effettuato ogni OREX (pari alle ore di attesa), sottraendo o sommando ai secondi dell'orologio-eventi i SECX (secondi calcolati) per tenere al passo l'orologio-eventi.

Purtroppo al variare della temperatura si può avere comunque errori di secondi e col tempo anche di minuti a causa della deriva del quarzo.

Il secondo evento , dopo la sincronizzazione, porterà dopo la pigiata di DW alla videata - 4 - potendo cambiare ore o minuti usando UP o DW senza passare per l’impostazione del giorno.