Non ti devi scusare, capire il lavoro degli altri non è mai facile, soprattutto quando scritto in maniera non professionale, a scuola ho avuto un bravo insegnante di elettronica digitale, ma l'ho Z80 l'ho abbiamo appena accennato, non riesco a scriverlo come vorrei, automaticamente quando invio il post mi vengono tolti gli spazi, proviamo cosi, ora gli if e end if sono allineati correttamente:
Inizio Subroutine di interrupt
if Select_Mode = 0 then *TMR0L = Div1 **Max_Count = 1 *else ****TMR0L = 255 *****if In_Dir = 0 then ******Count_Impulse = Count_Impulse + 1 *******if Count_Impulse > Div_Totale then ********Count_Impulse = 1 ********Max_Count = 1 *******end if *****end if *****if In_Dir = 1 then ******Count_Impulse = Count_Impulse - 1 *******if Count_Impulse < 1 then ********Count_Impulse = Div_Totale ********Max_Count = 1 *******end if *****end if end if if Max_Count = 1 then *Max_Count = 0 **Step_Out = 0 ***if Select_Mode = 1 then ****Somma = Somma + Div2 *****if Somma >= 10000 then ******Somma = Somma - 10000 *******Div_Totale = Div1 + 1 ******else *******Div_Totale = Div1 *****end if ***end if ****Step_Out = 1 end if TMR0IF_bit = 0
Fine Subroutine di interrupt
Il valore di Select_Mode viene deciso all'interno della routine principale è può avere, valore 0 se sono in menu avanzamento e 1 se in menu filettatura, quindi quando non mi serve avere il sincronismo perfetto carico nel timer il valore di divisione a destra della virgola div1, (div2 non viene conteggiato, non serve negli avanzamenti), altrimenti carico valore 255 cosi da avere la possibilità di contare ogni singolo impulso. Quindi quando si inverte il senso di rotazione, monitorando In_Dir (uscita del Flip Flop) ho la possibilità di decrementare la mia variabile, esattamente come fai tu con gli indici. Cosa che già facevo quando devo memorizzare la posizione angolare. Quindi l'ho solo applicata al conteggio degli impulsi.
Div1 e Div2 nel rispettivi menu vengono aggiornate quando si passa da un passo ad un'altro.
_________________ Solo gli stupidi non cambiano mai idea!
Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N
https://www.youtube.com/watch?v=cobEZI8KvOk
|