E
eztaM
Neues Mitglied
- Dabei seit
- 06.01.2006
- Beiträge
- 2
- Reaktionspunkte
- 0
Hallo,
ich habe ein Programm mit der CT-API geschrieben, das den Inhalt einer I2C Speicherkarte ausliest.
Die ausgelesenen Bytes werden von meinem Programm als dezimale Zahlen darstellt.
Ich möchte nun das Porgamm so erweitern, dass es einzelne Bytes auf der Speicherkarte überschreiben kann.
In dem folgenden Code habe ich das auch schon versucht, doch leider funktioniert es nicht.
Was habe ich falsch gemacht???
Vielen Dank
mfg Matze
ich habe ein Programm mit der CT-API geschrieben, das den Inhalt einer I2C Speicherkarte ausliest.
Die ausgelesenen Bytes werden von meinem Programm als dezimale Zahlen darstellt.
Ich möchte nun das Porgamm so erweitern, dass es einzelne Bytes auf der Speicherkarte überschreiben kann.
In dem folgenden Code habe ich das auch schon versucht, doch leider funktioniert es nicht.
Was habe ich falsch gemacht???
Code:
#include <stdio.h>
#include <ct.h>
int main()
{
unsigned short ctn=1, //Terminal-Nummer
pn=1, //Port-Nummer
lenr=254; //Größe des Puffers
unsigned char sad=2, //Source-address
dad=1, //Destination-address
response[600],//Puffer für Antwort
command[300];
char ret; //Rückgabewert
ret = CT_init(ctn,pn);
if(ret!=0)
printf("Fehler 1");
//Request ICC
command[0] = 0x20;
command[1] = 0x12;
command[2] = 0x01;
command[3] = 0x01;
command[4] = 0x00;
ret = CT_data(ctn,&dad,&sad,5,command,&lenr,response);
if(ret != 0)
printf("Fehler2");
printf("Request ICC:\n");
for(int a=0;a<7;a++)
printf("%3d ",response[a]);
//Select MF
sad=2;
dad=0;
lenr=254;
command[0] = 0x00;
command[1] = 0xA4;
command[2] = 0x00;
command[3] = 0x00;
command[4] = 0x2;
command[5] = 0x3F;
command[6] = 0x00;
ret = CT_data(ctn,&dad,&sad,7,command,&lenr,response);
printf("\n\nSelect MF:\n");
for(int a=0;a<7;a++)
printf("%3d ",response[a]);
//Write data:
sad=2;
dad=0;
lenr=400;
command[0] = 0x00;
command[1] = 0xD0;
command[2] = 0x1;
command[3] = 0x1;
command[4] = 0x0;
command[5] = 0x0;
ret = CT_data(ctn,&dad,&sad,5,command,&lenr,response);
if(ret!=0)
printf("\nFehler 5\n");
//Read data:
sad=2;
dad=0;
lenr=400;
command[0] = 0x0;
command[1] = 0xB0;
command[2] = 0x0;
command[3] = 0x0;
command[4] = 0x00;
ret = CT_data(ctn,&dad,&sad,5,command,&lenr,response);
printf("\n\nRead data:\n");
for(int a=0,v=0;a<260;a++){
v++;
printf("%3d ",response[a]);
if(v==19){
printf("\n");
v=0;
}
}
CT_close(ctn);
return 0;
}
Vielen Dank
mfg Matze