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:
temp(r16) wurde nicht initialisiert, es hat noch diesen Wert: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
;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







Zitieren

Lesezeichen