hallo,
ich habe folgendes Problems.
der Sensor gibt nur Daten wenn der arduino resetet ist,
was nicht sein sollte.
der sollte mir immer wenn ein TAG darauf liegt, ein Telegramm schicken.
habe ich da falsch programmiert?
byte RFID::Read_Block()
{
switch(state)
{ case senden:
RFID_Serialport.begin(115200);
Parameter();
Transmitter_On();
Senden(RB_Nutzbytesanzahl,RB_Nutzbyte1, RB_Nutzbyte2);
Serial.println("Senden ZUSTAND");
state= wait;
break;
case wait:
digitalWrite(Send_Recievepin, LOW);
if (Serial.available()>0){
// wdt_enable(WDTO_1S);
// wdt_reset();
state= ack;
}
else
state= wait;
break;
case ack:
startbyte=Serial.read();
if (startbyte==0xAA){
state= response;
}
else {
state=ack;
}
break;
case response:
delayMicroseconds(1000);
myList.add(startbyte);
do{
myList.add(Serial.read());
}while (Serial.available()>0);
listlaenge= myList.size();
byte empf[listlaenge];
if (listlaenge== 11 ){
Length= listlaenge;
for (int h = 0; h < listlaenge; h++) {
empf[h] = myList.get(h);
delayMicroseconds(100);
}
memcpy(&printArray, empf, 11 * sizeof(byte) );
arrayfull=true;
Transmitter_Off();
state=senden;
}
else {
delayMicroseconds(1000);
state=senden ;
}
break;
}
}
int RFID::Print_Block(){
if (arrayfull==true){
lcd.begin(16,2);
lcd.setCursor(0,0);
for (int i=0;i<Length;i++){
delayMicroseconds(100);
lcd.print(printArray[i], HEX);
Serial.print(printArray[i], HEX);
}
arrayfull=false;
}
}
die Ausgabe ist im Anhang