www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tastertest AVR Evaluationsboard Pollin


Autor: Robert Kaczmarek (kaczy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe das Pollin Atmel Evaluationboard 2.01 und pobiere gerade einige 
Dinge aus. Ich möchte einfach, das die LEDs die Tasterstati anzeigen.
Auf dem Board sind die verwendeten Taster 2/3 mit PD3/4 und die LEDs 1/2 
mit PD5/5 verbunden. Es ist ein Tiny2313 gesteckt.
Dazu habe ich folgendes Assembler-Programm geschrieben.

;----------------------------------------------------------------------- 
-
.include "2313def.inc"    ;Definitionsdatei laden
.cseg                     ;Beginn eines Code-Segmentes
.org 0                    ;Startadresse = 0
;
start:
  ldi  r16, low(ramend)
  ldi  r17, high(ramend)  ;Adresse vom RAM-Ende laden
  out  spl, r16           ;Stackpointer auf
; out  sph, r17           ;RAM-Ende setzen
  ldi  r16, 0b01100000    ;PortD: PB5-6 auf Ausgang
  out  ddrd, r16          ;setzen


loop:
  in   r16, PIND          ;Port D einlesen
  lsl  r16                ;2x nach links, dann sind die Bits
  lsl  r16                ;der Taster 2/3 bei den LED's 1/2
  out  portd, r16         ;Daten an PortD ausgeben
  nop
  clr  r16
  rjmp loop               ;Programmschleife neu beginnen
;----------------------------------------------------------------------- 
-

Direkt nach dem überspielen mit PonyProg funktioniert alles einwandfrei. 
Ich drücke die Taster in jeder möglichen Kombination und die LEDs 
leuchten passend dazu. Lasse ich jetzt das Bord einige Sekunden in Ruhe 
und drücke dann einen Taster, so leuchtet LED 1für einige Sekunden auf 
und ich habe völlig undefinierte LED Zusände. Z.B. LED 1 geht auf Taster 
3 an und bleibt an, auch wenn kein Taster mehr gedrückt ist, Das 
passiert auch mit Taster 2 und LED 1. Ich vermute das es kein 
technisches Problem ist, sondern ein Programmfehler.
Kann mir evtl. dazu jemand etwas sagen?

Gruß
Kaczy

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Pollin-Board hat einen Schaltungsfehler.
Die Kondensatoren an den Tasten müssen raus!
Sonst bringen die Stromstöße beim Drücken die CPU durcheinander.


Peter

Autor: Robert Kaczmarek (kaczy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.
Ich habe jetzt die Kondensatoren wieder ausgelötet, leider ist das 
Ergebnis unvreändert, alllerdings subjektiv erscheint es mir so, als ob 
das teilweise fehlerhafte Dauerleuchten der LED kürzer geworden ist.
Ich habe mit mal einige Schaltpläne zur Beschaltung der Eingabeports 
angesehen. Hier im Tutorial und auch in den anderen, werden die Eingänge 
mit einem Pullup-Widerstand gegen +5V geschaltet und der Taster tastet 
gegen GND. Auf dem Pollinboard ist es ein Pulldown-Widerstand, der gegen 
GND geschaltet ist und der Taster tastet gegen +5V. Ich habe jetzt mal 
einen externen Taster geschaltet. Durch die Pullup leuchten die LEDs 
dauerhaft und wenn ich taste, gehen sie aus. Das ist auch logisch und 
hatte bisher keine Fehlfunktion.

Ist es den generell nicht empfehlnswert gegen +5V zu tasten.

Gruß
Kaczy

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.