moin @ all, ich bekomme seitdem ich mein CompareMatch Interrupt von 0x000A korrigiert habe zu: 0x000D folgende Fehlermeldung: ******(23): error: Overlap in .cseg: addr=0xd conflicts with 0xd:0xe Wo liegt der Fehler? Bzw. was bedeutet der Fehler? Zeile 23 ist die Abfrage direkt nach der Initialisierung: cpi r16, 0x01 //Ist DDRB schon konfiguriert? Vielen Dank schon mal für sämtliche antworten fabi
1 | .org 0x000D //Clock-Match-A-Interrupt |
2 | rjmp matcha |
3 | .org 0x000B //External Interrupt (PINB,7) |
4 | rjmp extpin |
5 | ... |
6 | in r16, DDRB |
7 | cpi r16, 0x01 |
Quizfrage: auf welchen Adressen liegen jetzt die Befehle 'in' und 'cpi'?
anscheinend hab ich mich noch zu wenig mit stack beschäftigt. Wo kann ich das nachlesen. bzw. kannst du mir das erklären? Ich find gerade nix passendes im tutorial bzw. hier im forum
ok, wenn man 0x000D hinter 0x000B schreibt, funktionierts wieder. Einigermasen logisch, wegen der Größe der Zahlen, die dahinter stehen. Aber mehr hab ich leider auch noch nicht davon verstanden.
Fabian Scheidig schrieb: > Aber mehr hab ich leider auch noch nicht davon verstanden. Die Befehle werden nacheinander im Speicher angeordnet. Dieses streng monotone Nacheinander wird mit dem .org beeinflusst:
1 | .org 0x000D der nächste Befehl kommt auf Adresse 000D |
2 | rjmp matcha dieser nämlich, der nächste dann auf 000E |
3 | .org 0x000B aber halt, wir machen nicht mit 000E weiter, sondern mit 000B |
4 | rjmp extpin dieser also auf 000B, der nächste auf 000C |
5 | ... |
6 | in r16, DDRB dieser also auf 000C, der nächste auf 000D |
7 | cpi r16, 0x01 dieser also auf 000D, der nächste auf 000E |
Und welcher soll jetzt auf 000D, 'rjmp matcha' oder 'cpi r16, 0x01'?
danke für die super Erklärung, warum findet man sowas nicht im Tutorial?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.