Bene tenetevi pronti perchè in questo post esporrò per bene l'ultima revisione del programma, dato che ormai tutti i blocchi operativi che al momento include sono a posto e funzionanti, potremmo chiamare questa versione "milestone 1"


.
Iniziamo dal microprocessore fresco di programmazione

. Una volta inserito nel suo zoccolo e fornita tensione al grosso trasformatore tramite l'interruttore sul retro, impiega meno di 1 secondo per avviare il programma, impostare tutto e portarsi nella condizione di standby:
Basta premere il relativo tasto del telecomando a infrarossi o il tasto frontale per svegliare il tutto

, il LED passa da rosso a verde
La memoria è vuota, quindi sul display compare la scritta "No Cal!", comunque anche in questa condizione posso muovere manualmente i motori, ovviamente il programma non attiva i contaimpulsi nè memorizza nulla. Il simbolo (carattere giapponese) in alto a destra sul display indica che il circuito sta ricevendo e decodificando un segnale dal telecomando
Per poter passare al bello

, prima devo procedere a calibrare i motori

, ci sono 2 tasti separati sul telecomando, cominciamo con il motore H-H
La calibrazione è completamente automatica, provvede a portare il motore prima al fine corsa Ovest (conteggio 00000). Notare la "[" sotto la W per indicare l'arrivo a fine corsa
Quindi attiva il contaimpulsi, lo azzera e porta il motore all'estremo Est
Una volta raggiunto (notare la "]" sotto la E) visualizza il numero di impulsi conteggiati e memorizza i dati nella memoria EEPROM interna
Stessa cosa per il motore EL: prima viene allungato completamente (D)
Quindi fatto rientrare completamente (alza parabola)
Mostra il numero contato e memorizza
Ora la scritta "No Cal!" scompare dal display e il sistema è pronto per fare i fuochi

. Per il momento ogni volta che muovo un motore visualizzo sul display il valore di entrambi i contaimpulsi interni. A motori fermi i dati sono sempre salvati al sicuro nella EEPROM (prima di uscire dalla routine di comando salvo sempre)
Per verificare la ritenuta dei dati, basta spegnere tutto, togliere il microprocessore dallo zoccolo, inserirlo nel programmatore e leggerne il contenuto
Spulciando nella memoria EEPROM, possiamo vedere come nelle ultime 2 righe siano effettivamente stati scritti dei numeri (le celle vuote contengono sempre 255 o FFh). Partendo dall'ultima cella della penultima riga, troviamo il conteggio massimo del pistone (01A6h=422), seguito dal conteggio massimo del motore H-H (03FCh=1020); a seguire, troviamo il valore che aveva il contaimpulsi del pistone dopo l'ultimo movimento (118h=280) e l'ultimo valore del motore H-H (0330h=816). L'ultimo byte (indirizzo FFh) contiene l'ultimo stato del sistema, al momento utilizzato solo nella metà inferiore (la prima lettera sarà sempre F): partendo dal bit più alto, memorizzo se la calibrazione del pistone è stata eseguita con successo (ELCALSTA, 1=no 0=sì), quindi se ho fatto e finito la calibrazione del motore H-H (AZCALSTA, 1=no 0=sì), a seguire il bit globale di stato delle calibrazioni (CALSTA, 1=no 0=sì) e infine lo stato di accensione del sistema (POWER, 0=spento 1=acceso)

. Togliendo il micro dal programmatore e reinserendolo nel circuito e riaccendendolo ho tutto esattamente come prima con i contatori caricati con il numero giusto

.
Devo ancora provare a fondo, ma dovrei anche essere riuscito a correggere quel problemino per cui il motore H-H ogni volta che arrivava a un fine corsa si mangiava un conteggio sballando tutto dopo qualche corsetta. Certo, ho utilizzato un "trick" che è un compromesso abbastanza brutale, ma se funziona agirebbe come una correzione automatica del conteggio, che unita all'arresto istantaneo anche ai fine corsa dovrebbe quasi eliminare la necessità di ri-eseguire la calibrazione.
Per finire, la scheda sperimentale che per il momento fa da telecomando

. Notare che il diodo trasmittente all'infrarosso (in alto a destra) non è rivolto verso il ricevitore (ospitato nel foro grande nel frontale) eppure la ricezione è ottimale e non ha mai perso un dato
Il telecomando definitivo avrà ovviamente più tasti (20) e sarà ospitato nel mobile del kit LX1570 di n.E., per il quale ho già progettato la scheda

. Siccome io non voglio rimanere a piedi se mi si rompe il telecomando, gli stessi tasti saranno replicati sul tastierino alloggiato al posto della fessura per la smartcard, dietro allo sportello

.
Occupazione memoria: 3.150 linee di programma, 37%. Al momento non ho altri dati di servizio da salvare in EEPROM quindi il resto della memoria può essere utilizzato per memorizzare un massimo di 61 satelliti

. Sempre che non voglia memorizzarli nella Flash programma allora il numero sale a 1020 come già detto
