Hallo,
erstmal danke für die Erklärungen. Ich habe jetzt mal alles, was ich als nicht relevant empfinde, auskommentiert und wollte euch fragen, obs so passt oder ob man noch was optimieren kann? V.a. gehts um möglichst wenige Taktzyklen.
Vielleicht fällt euch ja noch was auf, anderfalls wäre es nett, wenn ihr mir ein OK gebt.Code:Isr_int0: push r16 'sichere r16 Push r10 'Push r11 Push r24 Push r26 'Push r27 lds r16 , {channel} 'lade channel in r16 cpi r16 , 6 'vergleiche r16 mit 6 brlo _lower 'springe, wenn kleiner rjmp _out_of_range 'sonst springe nach _out_of_range _lower: '_lower Label cpi r16 , 1 'vergleiche r16 mit 1 brge _higher 'springe, wenn größer gleich rjmp _out_of_range 'sonst springe nach _out_of_range _higher: '_higher Label '###################################################################################################################################### '###################################################################################################################################### 'Ldi R26 , 0x46 'Ldi R27 , 0x00 Ld R24 , X 'Ldi R26 , 0x3f 'Ldi R27 , 0x03 Ld R10 , X+ 'Clr R11 Ldi R26 , 0x15 'Ldi R27 , 0x03 Lsl R10 'Rol R11 Add R26 , R10 'Adc R27 , R11 St X + , R24 Clr R24 St X , R24 '###################################################################################################################################### '###################################################################################################################################### _out_of_range: '_out_of_range Label ldi r16 , 6 'lade 6 in r16 !out tcnt0 , r16 'schreibe r16 in timer0 lds r16 , {channel} 'lade Channel in r16 inc r16 'erhöhe Channel um 1 sts {channel} , r16 'lade r16 in Channel 'Pop r27 Pop r26 Pop r24 'Pop r11 Pop r10 pop r16 'stelle r16 wieder her Return
Btw: Bascom Version ist 1.11.9.5
Vielen Dank & Gruß
Chris







Zitieren

Lesezeichen