Post numero 100 su questo argomento




E numero 100 non a caso

Infatti posso dire che ho concluso la fase di sviluppo & debug

relativa ai 2 pezzi più importanti del programma, ossia la routine per muovere di X passi e quella per il movimento continuo

. La grafica sarà spartana ma per ora utilizzo il set di caratteri standard dell'HD44780

.
Esplicitando ogni routine in 4 blocchi operativi (uno per direzione) non avrò ottimizzato chissà che l'occupazione di memoria, ma in compenso sono riuscito ad implementare tutti i controlli in continuo e senza impazzire di salti condizionali

. Nello specifico, prima di dare tensione verifico che non sia già arrivato al limite verso cui lo dovrei muovere, in caso contrario accendo il motore e con un inframezzamento da pazzo

controllo di continuo in sequenza se è arrivato al limite, se gira (current sensing, finalmente funzionante con una modifichetta

) e se arriva l'impulso, con un timeout di 200 ms. Se il motore non gira visualizzo l'errore assieme a "-(M)-", abbozzo del simbolo normalizzato per un motore

, mentre se non ricevo più impulsi arresto e visualizzo un abbozzo di onda quadra

. Questo sia in movimento a passi sia in continuo, nel continuo quando rilascio il pulsante l'arresto avviene all'impulso (step) successivo, naturalmente con tutti i controlli di cui sopra

qui non si bada a spese (cit.


).
La routine di movimento a passi è già predisposta per il vero utilizzo, quello di GO TO X quando memorizzerò le posizioni

, utilizza il timer1 a 16 bit e incremento automatico, devo solo caricare il numero di passi e poi si arrangia a farli tutti

. Avendo esplicitato in 4 blocchi operativi, è un giochetto anche includere il conteggio assoluto del valore: so sempre su quale motore e in quale direzione operare

. Tenendo traccia del numero assoluto, mi risparmio l'impazzimento di un utilizzo condiviso del timer1: richiamando una memoria, devo solo calcolare segno e quantità di spostamento dalla posizione corrente, caricare la quantità di spostamento nel timer1 e in base al segno comandare nella giusta direzione

. A spostamento avvenuto avrò il registro del valore assoluto aumentato o calato dello spostamento appena fatto

.
Ora prima di procedere con le funzioni avanzate devo provare a costruire uno straccio di telecomando

.