mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger braucht Hilfe


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe eine Routine geschrieben um ein 2x16 Zeichen LCD zu steuern.
Das funktioniert auch alles wunderbar. Nur wenn ich dann ein paar mal
hintereinander den INT0 Eingang betätige stürzt das Dingen ab und das
LCD zeigt nur noch einen schwarzen Balken. Nach einem Reset läuft es
wieder hoch und initalisiert sich. Aufgebaut ist alles auf eine
Evolution Board von Pollin.Bei dem INT1 Eingang passiert es nicht. Den
Source habe ich mal angehangen ich hoffen mir kann jemand helfen.

MFG
Andreas

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

Bewertung
0 lesenswert
nicht lesenswert
ups falsche datei

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast vergessen, die Interrupttabelle anzulegen.

Beim INT0 springt dein Programm hier irgentwo hin

;Datenrichtungen festlegen
  ldi temp_LOW, 0xff                ;Ausgänge
  out ddrc, temp_low                ;PORTC = Ausgänge
  out ddrb, temp_low                ;PORTB = Ausgänge
  ldi temp_LOW, 0b11100001
  out ddrd, temp_low                ;PORTD
gut, dann werde eben die Ausgänge neu gesetzt. Da du aber nirgentwo ein
RETI drinn hast, (wofür auch) wird dein "STAPELZEIGER" immer weniger,
bis er ins PRogramm zeigt und die Kiste irgentwann abschmiert.

Ich hoffe das stimmt soweit, bzw. dass ich mich so ausgedrückt habe,
dass Du was mit anfangen konntest. Man kann mich ja korrigieren.

Gruß
AxelR.

Autor: AndreasN83 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
und schonmal danke für die Antwort. Das habe ich mir auch schon fast
gedacht wie lege ich denn so eine Interrupt Tabelle an. Hab auch schon
versucht sie im GIMSK zu deaktivieren hat aber auch nicht gebracht.


MFG
Andreas

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interrupt-Tabelle steht in jedem Datenblatt ziemlich weit vorne drin
(Mega16 Datenblatt Seite 44). Kannste praktisch 1:1 übernehmen. Habe in
Deinem Programm allerdings kein sei gesehen, dürfte also eigentlich gar
keine Reaktion geben. Die Vektortabelle wird ja nur dann angesprungen,
wenn ein Interrupt auftritt. Oder hab ich das sei ÜBERsehen?

Gruß

Johnny

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...Ergänzung: Bei den Interrupts, die Du nicht benutzt, solltest Du dann
natürlich anstelle von 'jmp irgendwohin' ein 'reti' reinschreiben,
damit bei einer unbeabsichtigten Fehlkonfiguration der µC nicht ins
Nirwana springt und komplett abstürzt.

Autor: AndreasN83 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab im Programm kein sei drin.
Das machte mich auch stutzig wieso der abk....
Und das komische ist das es nur beim INT0 eingang passiert wenn ich
INT1 oft betätige passiert nichts.

MFG

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt: ohne SEI dürte garnichts passieren.
Dann mal ganz blöd denken.
Ist der INT0 als Ausgang initialisiert? dann ist es vlt. ein
Kurzschluss, wenn Du INT0 nach Masse "tippst"?

Autor: AndreasN83 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meistens ist es ja was einfaches.
leider diesmal richtig Deklariert.:-)
Versteh das bald nimmer :-)
hab portd mal komplett als eingang geschaltet aber auch das brachte
keine verbesserung.

Autor: AndreasN83 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehler gefunden. JUHU
Also ich habe den eingang einfach mal öfters mit einem Draht direkt auf
5V gebrückt nichts passierte. Neuen Taster rein. und es funzt.

MFG

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.