Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Servo per ASM mit CC steuern Kategorie: Programmierung ASM (von Kay - 7.02.2005 17:53)
 Als Antwort auf Re: Servo per ASM mit CC steuern von FlyingMatze - 7.02.2005 10:48
deine assemblerroutine scheint nicht so optimal.
so wie ich das sehe, brauchst du sie nur als
"k├╝rzeren pausenbefehl". demnach kannst du dir
das setzen und l├Âschen der ports sparen, das kannste
in basic machen und bist dabei noch flexibel. es reicht
also eine einfach herunterz├Ąhlschleife in der form:

 org $101
           lda #255    ;255 -> Akku
_deca      deca        ;decrementiere Akku
           bne  _deca  ;mach das nochmal, wenn akku nicht 0 (Z-Flag an CCR)
           rts         ;zurueck ins system

die ist so in knapp 800 ┬Ás fertig. zusammen mit dem aufruf
durch sys und den basic-befehlen zum setzen/l├Âschen der
ports kommst du so ziemlich auf deine millisekunde.
du kannst auch eins machen: den schleifenstartwert beim aufruf
von sys als parameter mitgeben, und so feintuning betreiben.
das geht mit:

 org $101
           lda $92     ;low-byte des top of stack -> Akku
_deca      deca        ;decrementiere Akku
           bne  _deca  ;mach das nochmal, wenn akku nicht 0 (Z-Flag an CCR)
           rts         ;zurueck ins system

mit sys &h101,255 ist die maximale dauer der schleife garantiert, ist sie zu lang,
einfach nen kleineren wert mitgeben. ist die schleifendauer trotz 255 noch zu kurz,
dann muss eine leeroperation eingef├╝gt werden:

 org $101
           lda $92     ;low-byte des top of stack -> Akku
_deca      deca        ;decrementiere Akku
           nop
           bne  _deca  ;mach das nochmal, wenn akku nicht 0 (Z-Flag an CCR)
           rts         ;zurueck ins system

allerdings m├╝ssen dann entsprechend niedrigere schleifenstartwerte
mit ├╝bergeben werden.
einmal ├╝bertragene s19-dateien im basic-programm auskommentieren!
das schont den eeprom des kontrollers und beschleunigt das ├╝bertragen
von programmen allgemein.

 Antwort schreiben

Bisherige Antworten: