Hallo ich habe den neuen ATtiny 2313 und wollte ein Nibbel auslesen und in eine Variable speichern. Die Variable soll mal 9 genommen werden und in OCR0a geschrieben werden. Ich bekomme folgende fehlermeldung (illegal opcode mul for mcu attiny2313). Wenn ich die Variable 9 mal Plus nehme habe ich das Problem nicht. Hier ist der Code if bit_is_set (PINB,0) PINB_V += 1; if bit_is_set (PINB,1) PINB_V += 2; if bit_is_set (PINB,2) PINB_V += 4; if bit_is_set (PINB,3) PINB_V += 8; PINB_V *= 9; OCR0A = PINB_V; dieser Code produziert den fehler. if bit_is_set (PIND,0) PIND_V += 1; if bit_is_set (PIND,1) PIND_V += 2; if bit_is_set (PIND,2) PIND_V += 4; if bit_is_set (PIND,3) PIND_V += 8; OCR0B = (PIND_V + PIND_V + PIND_V + PIND_V + PIND_V + PIND_V + PIND_V + PIND_V + PIND_V); dieser Code geht aber warum? Mfg. Torben
Weil der Tiny2313 keinen Multiplier hat. Das weiss der Compiler aber nicht. Mit -mmcu=at90s2313 uebersetzen.
War ein Bug, ist inzwischen dahingehend repariert, dass der ATtiny2313 mittlerweile vom CPU-Kern her wirklich wie ein AT90S2313 behandelt wird (bis auf die erweiterten IO-Möglichkeiten).
Ja Danke es geh ja auch so wie in meinem Code aber ich benutze Winavr und es gibt noch keine neue Version mit der Libc 1.2.1 Bitte noch eine kurze Mail wie ich den Winavr updaten kann. Mfg. Torben
Doch, es gibt einen privaten Port der 1.2.1 für WinAVR. Steht als Announcement ganz oben im GCC-Forum von avrfreaks.net.
Hallo ich habe die Libc 1.2.1 instaliert aber das Problem ist damit nicht weg. Es kommen beim Compilieren nur noch mehr fehler. Weitere Hilfe währe nicht schlecht. Mfg. Torben
Errm, ja, du brauchst natürlich nicht nur die Bibliothek, sondern du musst auch den Compiler und Binutils patchen. :-/ Abhilfe für jetzt erstmal: deklarier' den Chip als AT90S2313 gegenüber dem Compiler. Die nächste WinAVR-Version wird sich wohl auch nicht mehr so lange hinziehen.
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.