AVR-Studio Bugs

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Das kostenlose AVR Studio von Atmel enthält in der Simulation einige Fehler. Falls euch zusätzliche Fehler bekannt sind, bitte hier hinzufügen.

AVR-Studio 4.10 (Build 356)

ATMega8

  • Simulator (AD Wandler). Beim manuellen setzen des ADIF Bits in ADCSR, wird nicht die dazugehörige Interrupt Routine angesprungen.


AVR-Studio 4.08 (Build 310)

ATtiny12

  • Int0 (Interrupt 0) wird durch PinB.2 (falsch) und nicht durch PinB.1 (richtig) ausgelöst. (In Version 4.09 bereinigt)

ATtiny15

  • OCF1A-Flag in TIFR wird beim Ausführen des Interrupts nicht automatisch zurückgesetzt. Das führt dazu dass die Interruptroutine sofort nach Beendigung wieder angesprungen wird obwohl inzwischen kein neuer Interrupt erfolgte. Abhilfe: Zurücksetzen des Flags per Programm in der Interrupt-Routine:
ldi temp, 0x40
out TIFR, temp
  • PINB.1 zeigt Signalwechsel obwohl laut DDRB.1 als Eingang programmiert. Festgestellt bei Verwendung der "output compare"-Funktion von Timer/Counter1.


AT902313 (und wahrscheinlich auch andere Devices)

Die Simulation des EEPROM-Beschreibens funktioniert nicht. Der Code scheint zwar fehlerfrei zu laufen, doch die Daten im EEPROM verändern sich nach dem Schreibbefehl einfach nicht.

Simulator (getestet mit AT90S8535)

Wird grade im Einzelschritt Modus (F11) ein C Code mit einer if Verzweigung simuliert und in diesem Moment die Variable, die für die if Verzweigung entscheident ist, von Hand geändert und dann der nächste Schritt simuliert, stürtzt das AVR Studio mit der Meldung "Diese Anwendung wird aufgrund eines ungültigen Vorgangs geschlossen" ab.

Beispiel: if (dispmode == 2) {

Der gelbe Pfeil zeigt auf die Zeile; dispmode (vom Typ uint8_t) ist Null; dispmode wird zur "Watch 1" Liste hinzugefügt; dort wird die Variable von Hand in 2 geändert; dann wird der nächste Schritt (F11) simuliert -> Absturz des Programms


Timer des ATMEGAS128 wird nicht richtig simuliert

Es ist leider schon eine Ewigkeit aus, deshalb kann ich keine genaueren Angaben machen. Es gibt einen Modus, wo der Timer hinaufzählt. Hat er den höchsten Wert erreicht zählt er wieder hinunter. Im AVR-Studio änderte der Timer nie seine Zählrichtung.