www.mikrocontroller.net

Forum: Compiler & IDEs Probleme mit AVR Studio


Autor: Reinhard (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

folgendes Problem beim Simulieren in AVR Studio. Ob Taster 2 gedrückt
ist oder nicht wird gar nicht abgefragt, weil das Programm in AVR
Studio nicht bis zu dieser
Stelle
+0000004D:   999C        SBIC    0x13,4           Skip if bit in I/O
register cleared
kommt.
Wenn man sich den Quellcode ansieht wird dieses Bit jedoch abgefragt.
Wenn ich das prog an meinem µC simuliere läuft auch alles so wie es
sein soll.

Normalerweise sollte doch auch der Status der Bits an PIND
nach jedem Hochzählen der Variablen led wechseln, die Bits
sind aber immer alle ( schwarz ) gesetzt.


Top Forum.


Gruß
Reinhard

Autor: Dieter B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Reinhard

Taster 2 wird nur in Ablauf 1 abgefragt.

Also so wie ich das Prg. jetzt mal überflogen habe, passiert beim Start
doch erstmal gar nichts. Wenn du Taster 1 drückst, hast du einen
aufwärtszähler auf PortD. Wenn du jetzt Taster 2 drückst kommst du in
Ablauf2, mit Zähler ab 8 aufwärts.

So, jetzt kommst du aus Ablauf 2 aber nicht mehr raus, weil du keine
Taste mehr abfragst.

outp solltest du nicht mehr verwenden. Nimm einfach

PORTD = 0xFF; oder
PORTD = ~LED;

MFG
Dieter

Autor: Reinhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

aus Ablauf 2 komme ich nur heraus wenn ich einen Reset mache.
Das eigentliche Problem besteht jedoch darin, dass das Programm beim
Simulieren in AVR Studio nachdem Taster 1 ( PINC 5 ) gesetzt wird das
Programm nicht bis zu der zweiten Abfrage  Taster 2 ( PINC 4 ) kommt.

Kurz und schmerzlos PINC 4 wir nicht abgefragt.
Wenn ich es mit meinem Atmel 4433 simuliere läuft alles so wie es sein
soll.

Gruß
Reinhard

Autor: Dieter B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Habe das Programm im AVR Studio simuliert.

Läuft ohne Probleme. PINC 4 wird sauber abgefragt.

Bedenke, das durch deine Zeitverzögerung mit den IF Abfragen,
du ca 1757461 Zyklen ( Takte) brauchst, bis die Abfrage kommt.

Setze mit F9 eine Breakpoint auf "if (bit_is_clear (PINC,4)) " und
lass das Programm dann mit F5 laufen. Dauert so schon einige Sekunden,
bis du zum Breakpoint kommst.

MFG
Dieter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.