www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster über RS232 abfragen


Autor: Schüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Elektroniker,

gerade bin ich dabei, mich ein wenig mit Schnittstellenprogrammierung zu 
beschäftigen. Jedoch steht bei mir eigentlich die Softwareentwicklung im 
Vordergrund - nicht die Elektronik.

Für den Einstieg würde ich gern einfach mal ein paar Taster und Schalter 
abfragen und davon abhängig ein paar LEDs ein- und ausschalten.

Dazu habe ich mir im Internet ein RS232-I/O Board "IO 88" von ELV 
herausgesucht, was sich vermutlich für diesen Zweck ganz gut eignet.
(http://www.elv.de/output/controller.aspx?cid=74&de...)

Allerdings ist es so, dass mir das nötige Werkzeug für den Aufbau der 
Platine fehlt. Hinzu kommt, dass ich absolut keine Erfahrung mit dem 
Löten von SMD Bauteilen habe...

Für mich stellt sich nun die Frage, ob man so ein IO-Board nicht auch 
fertig aufgebaut bekommen kann. Bei ELV scheinbar nicht...

Habt ihr eine Idee oder könnt vielleicht sogar ein Board empfehlen?

Vielen Dank für eure Mühen,

Martin :)

Autor: Serieller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du ohne Löten auskommen willst:

Schau dir mal das K8055 Board vom Velleman an. Das gibt es auch als 
Fertiggerät VM110 
(http://www.velleman.eu/distributor/products/view/?id=351980). Der 
Bausatz K8055 kostet bei Conrad 30€, das Fertiggerät 50€.

Oder die Pollin-Boards, die gibt es auch fertig aufgebaut:
* Pollin ATMEL Evaluations-Board
* Pollin Funk-AVR-Evaluationsboard
* AVR Net-IO Bausatz von Pollin

Autor: Schüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für Deine Hinweise und die Links.
Ich schau mir das alles mal an.

Zum Verständnis hätte ich gerade noch eine Frage, die für euch bestimmt 
kinderleicht ist.

Ich stelle mir die Abfrage momentan noch so vor, dass man z.B. aus einem 
Programm heraus (in C++ geschrieben) die serielle Schnittstelle in 
while() Schleife abfragt.
Wenn ich einen Taster gedrückt habe, ist das korrespondierende Bit in 
den gelesenen Daten 1 (oder auch 0).

Mal angenommen, ich möchte zählen, wie oft ein Taster gedrückt wurde.
Dann funktioniert es ja so nicht:
int anzahl = 0;
while( gelesenes_byte = lese_schnittstelle() ) {
  if( gelesenes_byte | bitmaske_fuer_taste_1 == 1 ) {
    anzahl++;
  }
}

denn so zähle ich ja die Anzahl der schleifendurchläufe, in denen der 
Taster gedrückt war. Also viel zu viel...


Löst man sowas mit der Software, indem man sich die Zustände des 
vorherigen Durchlaufs merkt und immer vergleicht?
Oder löst man das auf Hardwarebasis direkt am Controller (z.B. ATMega8)

Sorry, für die vielleicht dumme Frage, aber ich bin wirklich ganz ganz 
neu auf dem Gebiet.

Danke,

Martin

Autor: Jannis C. (kabelwurm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich würde das direkt am Controller mit
if ( (PINA &(1<<PINAx) ) {
lösen. Du musst natürlich ans Entprellen denken, also erstmal eine 
Funktion programmieren oder du schreibst nach deiner Operetion
_delay_ms(100)
Die 100 muss nicht sein, es gehen auch andere Zeiten. Bedenke nur, dass 
in dieser Zeit der Prozessor einfach nur wartet und nichts anderes 
macht.
Zur Abfrage und für alles andere, was ich hier angesprochen habe, gibt 
es auch Artikel im GGC-Tutorial, die für Schüler acu verständlich sind.
Ich bin auch noch Schüler und bin da gut durchgestiegen.
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
Gruß Jannis

Autor: Schüler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jannis,

das ist ein großartiger Link! Vielen Dank.
Damit bin ich erstmal eine Weile beschäftigt.

Viele Grüße,

Martin

Autor: Jannis C. (kabelwurm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da nicht für.
Das Tutorial für C gibt es auf der Home Seite oben links.
Hilft bei ziemlich allen Fragen, die man am Anfang so hat.
Und wenn man Fragen zum Controller hat, das Datenblatt ist erste Wahl, 
und wenn das die Frage nicht lösen kann, dann im Forum AVR-GGC fragen 
und suchen.
Gruß Jannis

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.