Hallo.
Ich versuche mit dem PIC 18F2431 einen brushless Regler aufzubauen. Ich
habe jetzt auch schon fast den gesamten Code beisammen. Ich habe mich an
dem Code Beispiel des AN970 gehalten, da dieses für sensorlose Motoren
ist.
In dem Code gibt es einen Schnipsel, den ich einfach nicht verstehe.
1 | UPDATE_SEQUENCE
|
2 | ;init table again
|
3 | btfss FLAGS1,FWD_REV
|
4 | bra ITS_REVERSE
|
5 | lfsr 0,POSITION_TABLE_FWD
|
6 | bra PICK_FROM_TABLE
|
7 | ITS_REVERSE
|
8 | lfsr 0,POSITION_TABLE_REV
|
9 | ;--
|
10 | PICK_FROM_TABLE
|
11 | movf PORTA,W
|
12 | comf WREG,W ;In forward direction, the BEMF ZC is inverted
|
13 | andlw 0x1C ;IC1/IC2/IC3
|
14 | rrncf WREG,W
|
15 | rrncf WREG,W
|
16 | movwf BEMF_ZC
|
17 | movf PLUSW0,W
|
18 | movwf OVDCOND_TEMP
|
19 | return
|
Könnte mir den Schnipsel bitte mal jemand erklären. Mir ist nicht ganz
klar, wie er an der Stelle die Position aktualisiert?
besten Dank und schöne Grüße