
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Danke für deine Mühe, > > Ich habe ein bischen experimentiert und ff. Lösung > gefunden: > > > ! lda #8 > #next1 ! bclr b5,pta 'bit5 ist Eingang an PORTA 2 > > 'hier jetzt akku bitweise abfragen > ! brclr 0, freeram1, weiter1 > 'Pause 2,5µs > ! bset b5,pta 'setze bit5=1 an PORTA 2 > ! bra bitende1 > #weiter1 ! ldx #70 > #warten1 ! decx 'Pause > ! bne warten1 > ! bset b5,pta 'setze bit5=1 an PORTA 2 > > #bitende1 ! lsr freeram1 > ! deca > ! bne next1 > ! > ! > > > > es wird also immer bit0 abgefragt,dafür der der Wert im Speicher 8x nach rechts verschoben. > > LG > > Wolfi Hallo Wolfi, viele Wege führen nach Rom, wenn es Dir um kürzer/schneller geht, dann ist DBNZA(DBNZX) besser: #weiter:!DECX: !BNE weiter ' 1 + 3 =4Tkt benötigt insgesamt 4 IC-Takt-Cyclen Die Befehle DBNZA und DBNZX jeweils nur 3 : Dein Programm könnte also sein: ! lda #8 #next1: ! bclr b5,pta:! brclr 0, freeram1, weiter1 ! bset b5,pta:! bra bitende1 #weiter1: ! ldx #93 ' vorher war Deine Pause 4Tkt*70=280 Taktzyklen #warten1: ! DBNZX warten1 ' jetzt hat Deine Pause 3Tkt*93=279 Taktzyklen ! bset b5,pta #bitende1:! lsr freeram1:! DBNZA next1 und noch kürzer/schneller: ! lda #8 #next1: ! bclr b5,pta:! brclr 0, freeram1, weiter1 ! bra bitende1 #weiter1: ! ldx #93 ' vorher war Deine Pause 4Tkt*70=280 Taktzyklen #warten1: ! DBNZX warten1 ' jetzt hat Deine Pause 3Tkt*93=279 Taktzyklen #bitende1:! bset b5,pta:! lsr freeram1:! DBNZA next1 Beste Grüße, GeKue |
| Antwort schreiben |