Also so?
Fällt mir noch ein wenig schwer, so zu denken, aber ich werds denk ich noch hinbekommen.Code:pruefSek: push tmp ;tmp sichern in tmp, SREG push tmp ;SREG sichern ldi tmp, HIGH(time1) ;Für den Timer1 (16Bit) benötigen out TCNT1H, tmp ;wir 2 Register, in denen wir den Wert ldi tmp, LOW(time1) ;für die 1 Sekunde speichern -> out TCNT1L, tmp ;"TCNT1H" und TCNT2L" lpm ;Daten von tonleiter1: holen adiw ZL,1 ;Z um 1 erhöhen, nächstes Byte ldi tmp, LOW ((tonleiter1 * 2) + daten_laenge) ;vergleiche LOW-Byte cp ZL, tmp ldi tmp, HIGH ((tonleiter1 * 2) + daten_laenge) ;vergleiche HIGH-Byte cpc ZH, tmp brne regwiederholen ;Ist Ende erreicht? ldi tmp, (0<<CS02) ;JA -> Timer0 abstellen out TCCR0, tmp regwiederholen: pop tmp out SREG, tmp ;SREG wiederholen pop tmp ;tmp wiederholen reti
Mal so nebenbei, beim compilieren bringt er mir folgendes Warnung:
Wenn ich die 0 hinten bei meiner DB rausnehmen, ist die Warnung weg. Soll ich die Warnung einfach ignorieren, oder wann kommt es dann zu Fehlern?warning: .cseg .db misalignment - padding zero byte







Zitieren

Lesezeichen