Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Lesen von Chipkarte Kategorie: I²C-Bus (von André H. - 13.02.2005 10:44)
Als Antwort auf Lesen von Chipkarte von Wolfi - 1.02.2005 20:36
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Wolfi,

> Ich hab ein Problem mit dem Lesen von Daten von einer Chip-Karte. Verwende eine 16kBit-Karte.
> Ich hab es mit dem Modul i2c geschafft Daten draufzuschreiben (überprüft mit Chipdrive am Laptop).
> Nur das Lesen haut irgendwie nicht hin.
> Habs mit folgendem Code probiert:
>
>  lcdext.print("ACK1: ");
>  lcdext.ziff(i2c.start(160) and 1);
>  i2c.write(0);
>  i2c.write('A');
>  i2c.write('B');
>  i2c.write('C');
>  i2c.write('D');
>  i2c.stop();
>
>  sleep 50;
>
>  lcdext.print(" ACK2: ");
>  lcdext.ziff(i2c.start(160) and 1);   // BIS HIER HIN OK !!! NUR LESEN OHEN FUNKTION !!?
>  i2c.write(0);
>  lcdext.ziff(i2c.start(161) and 1);
>  lcdext.zahl4(i2c.read());
>  lcdext.zahl4(i2c.read());
>  lcdext.zahl4(i2c.read());
>  lcdext.zahl4(i2c.readlast());
>  i2c.stop();

Benutze bitte für das Posten von Quellcode immer die Code-Tags.
Der Quellcode ist dann einfacher zu lesen und ähnlich formatiert, wie in der IDE.

Deine Routinen scheinen augenscheinlich OK zu sein.
Jedoch ist die Ausgabe auf dem LCD so nicht ganz so gut zu lesen.
Da Du Buchstaben in das EEProm schreibst, kannst Du diese einfacher mit
lcdext.put(i2c.read()): darstellen.
Ansonsten "sprengst" Du die Zeile, da Du 32 Zeichen in einer Zeile ausgeben willst.
Bei einem 4zeiligen Display sollte dies jedoch kein Problem sein, da hier einfach in
der dritten Zeile fortgesetzt wird. (Falls die Ausgabe bei Dir in Zeile 1 beginnt.)

Das Problem mit den 16kBit EEProms (bzw. Chipkarten) ist, daÃ? diese
einen Sonderfall in der Adressierung darstellen.
Genauso, wie 4kBit und 8kBit.
Darum biete ich bei CCTools keine EEProms oder CHipkarten mit diesen Grö�en an.

Das 16kBit EEProm belegt 8 Adressen am I²C-Bus.
Es verhält sich quasi wie 8 2kBit EEProms.
Versuche es mit dem Modul eeprom2k.c2 . Die ersten 256 Byte lassen
sich über Subadresse 0 ansprechen, die zweiten 256Byte mit Subadresse 1 usw. .

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: