Hallo zusammen,
ich bin schon einige Zeit am testen und probieren. Leider bin ich jedoch im Umgang mit dem Mikrocontroller bzw. dessen programmierung noch nicht so geübt. Entschuldigt daher bitte, falls es in den Augen eines erfahrenen Programmierers etwas 'komisch' aussieht.
Grundsätzliches Ziel ist es, eine Chipkarte die am I2C Bus hängt auszulesen bzw. zu beschreiben. Als Basis benutze ich ein MyAVR Board mit einem Atmel Mega 8, ein MyAVR LCD Addon und ein I2C Chipkartenleser von horter.de. Die Programmierung erledige ich in Bascom-AVR.
Die Beispiele aus dem Bascom Programm waren leider nicht besonders Hilfreich, daher habe ich eines der Beispiele von roboternetz.de für mein Board angepasst. Der Code sieht momentan wie folgt aus:
Die Ausgabe am LCD sieht nun so aus, das er "Rein=" korrekt ausgibt und immer in 10er Schritten zu schreiben versucht. Leider gibt der Kontroller bei "Raus=" immer 255 an. Dies passiert sowohl mit, als auch ohne eingelegte Karte.Code:$regfile = "m8def.dat" $crystal = 8000000 '---Config für LCD ----------------- Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 2 Config Portd = Output 'SDA und SCL definieren Config Sda = Portb.0 Config Scl = Portb.1 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte CLS Do '---- schreibe in EEprom ---- For A = 1 To 10 Incr X '1 bis Überlauf zählen I2cstart 'Start I2C I2cwbyte &HA0 'Sende Slave Adresse I2cwbyte A 'Sende Speicheradresse I2cwbyte X 'Sende Wert I2cstop 'Stop I2C Waitms 10 'warte 10ms Locate 1 , 1 Lcd "Rein=" ; X ; " " ' Ausgabe der geschriebenen Werte am LCD Waitms 500 Next A '--- lesen vom EEprom ---- For B = 1 To 10 I2cstart 'Start I2C I2cwbyte &HA0 'sende Slave Adresse I2cwbyte B 'sende Speicheradresse I2cstart 'Start I2C I2cwbyte &HA1 'sende Slave Adresse +1 für lesen I2crbyte Lesen , Nack 'lese Adresse vom EEprom I2cstop 'Stop I2C Locate 2 , 1 Lcd "Raus=" ; Lesen ; " " 'Ausgabe der EEprom Werte Waitms 500 Next B Loop End
Für jegliche Hilfe wäre ich sehr dankbar, egal ob in einer Hilfestellung oder eines FAQ's/HOWTO's etc...
Vielen Dank schonmal im vorraus,
Christoph.







Zitieren

Lesezeichen