Hallo H3llGhost

Mit Assembler kenn ich mich noch gar nicht aus, deshalb fand ich die letzte Version deines Codes noch weniger verwirrend als diese Version jetzt. Könntest du mal nur den Teil des Codes posten, der die Motoren jeweils mit einem festen PWM-Wert laufen läßt. Möglichst links und rechts verschieden.

Was mir bei der letzten Version aufgefallen war:
Code:
interrupt:         				;LEDs toggeln
   inc r20         				;Timererweiterung inkrementieren
   brne interrupt2   			;wenn r20=0, zu interrupt2 springen
   ldi r20,HIGH(TIME2)      	;sonst Starwert Timer neu setzen
   cbi PORTD, PD5
   cbi PORTB, PB5

   inc temp

   out      OCR1AH,   temp         ; für den linken Motor
   out      OCR1AL,   temp         ; für den linken Motor
   out      OCR1BH,   temp         ; und für den rechten Motor
   out      OCR1BL,   temp         ; und für den rechten Motor

   sbi PORTD, PD5
   sbi PORTB, PB5


interrupt2:
    ldi r16,LOW(TIME2)      ;Startwert Timer neu
    out TCNT0,r16
    reti
temp(r16) wurde nicht initialisiert, es hat noch diesen Wert:
;Stackpointer setzen wg. Unterprogramm
ldi r16,HIGH(RAMEND)
out SPH,r16
ldi r16,LOW(RAMEND)
out SPL,r16

und bei Interrupt2 wird wieder r16 verwendet, dass kann doch nicht stimmen, oder? Vielleicht sollte oben ein anderes temp definiert werden:

.def temp = r16

btw springt brne wenn r20 nicht 0 ist zu interrupt2 (lowbyte neu laden), aber da stimmt nur der Kommentar nicht.

Gruß

mic