Forum: Mikrocontroller und Digitale Elektronik Portexpander zum lesen eines Zahlenfeldes


von Mike D. (hero2992)


Lesenswert?

Hallo,
Ich möchte eine Zutrittskontrolle per Transponder bauen,welche als 
zusätzliche Absicherung eine Passwordabfrage machen soll.

Ich arbeite mit einem ATMega8 von Atmel , welcher sich auf einer 
Testplatiene befindet (My AVR Board MK2 USB)

Durch die Experimentierplatiene sind keine Vollständigen Ports 
verfügbar.Daher habe ich mir einen Portexpander gekauft, der über einen 
I²C Bus angesteuert wird.

Nachdem ich mir ein Beispielprogramm des Portexpanders runtergeladen 
habe, zweifele ich daran, das ich mit dem Befehl "GETKBG" arbeiten kann.

Ich bin jedoch an das MK2-Board gebunden da ich zusätzlich die 
MyTWI-Echtzeituhr gebrauche.

Ich Hoffe das mir jemand einen Tipp,eine Alternative zum GETKBG,... 
geben kann.

Vielen Dank im Vorraus

Hero

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

ich gehe mal davon aus, das "GETKBG" irgendwas zum lesen einer 
Matrixtastatur sein soll. Wie schon von dir vermutet, wird sich diese 
Funktion nur für einen Anschluss der Tasten direkt am AVR konfigurieren 
lassen.
Damit musst du deine Tastenabfrage selbst basteln ...

also über I2C Spaltenleitung aktivieren, anschließend Zeilenleitung 
einlesen und das alles zyklich mit allen Spalten wiederholen und 
auswerten.
Es reicht ja wenn du die Abfrage aktivierst, wenn auch eine Eingabe 
erwartet wird.

Sascha

von Mike D. (hero2992)


Lesenswert?

Hallo, ich möchte mich erst für die schnelle Antwocht bedanken, ich 
hatte von beginn an vor die abfrage erst zu aktivieren, wenn eine 
Eingabe erwartet wird, doch das ist vorest das kleinste Problem.

Da ich bisher noch nie mit I²C Bus gearbeitet habe, habe ich es schwehr 
ein eigenes programm zu schreiben. Ich habe bisher 2 Beispielprogramme 
gelesen und versucht zu analysieren.Gröstenteils verstehe ich sie auch, 
nur habe ich keinen Durchblick wenn es um das deklarieren eigener 
Subroutinen geht.

Ich habe mich noch etwas informiert und diesen Code gefunden der eine 
vereinfachte Tastenabfrage wiedergibt.

Code:
Anfang der Wiederholungsschleife
Alle Ausgänge aus
Ausgang 1 an
Wenn Eingang 1 ein Signal bekommt, ist Taste 1 gedrückt
Wenn Eingang 2 ein Signal bekommt, ist Taste 4 gedrückt
Wenn Eingang 3 ein Signal bekommt, ist Taste 7 gedrückt
Wenn Eingang 4 ein Signal bekommt, ist Taste * gedrückt
Alle Ausgänge aus
Ausgang 2 an
Wenn Eingang 1 ein Signal bekommt, ist Taste 2 gedrückt
Wenn Eingang 2 ein Signal bekommt, ist Taste 5 gedrückt
Wenn Eingang 3 ein Signal bekommt, ist Taste 8 gedrückt
Wenn Eingang 4 ein Signal bekommt, ist Taste 0 gedrückt
Alle Ausgänge aus
Ausgang 3 an
Wenn Eingang 1 ein Signal bekommt, ist Taste 3 gedrückt
Wenn Eingang 2 ein Signal bekommt, ist Taste 6 gedrückt
Wenn Eingang 3 ein Signal bekommt, ist Taste 9 gedrückt
Wenn Eingang 4 ein Signal bekommt, ist Taste # gedrückt
Alle Ausgänge aus
Ende der Wiederholungsschleife

Ich versuche noch irrgend was über das Programmieren von I²C Bus 
rauszufinden, damit ich so schnell wie möglich mit meiner Endarbeit 
fortfahren kann...

von Sascha W. (sascha-w)


Lesenswert?

in welcher Sprache programmierst du ? - BASCOM ?

da gibt's doch sicher schon Funktionen zum I2C-Zugriff !?
(Byte lesen/schreiben)

welchen Portexpander verwendest du?

Sascha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.