Hallo zusammen,
ich benütze die EUSART um Daten Seriell zwischen PIC und CAMERA zu versenden und empfangen.
Nun habe ich folgendes Problem, ich sende ein SYNC- Paket von der Länge 6Byte an die Camera. Diese Antwortet solange ein ACK- Paket von der Länge 12Byte bis ich das ACKSYNC- Paket sende.
Wenn ich nun z.B. 10 ACK- Paket empfange möchte sehen die Daten folgendermassen aus:
0xff,0xff,0xff,0xff,Ack-Paket, 12x 0xFF , 12Byte Ack-Paket,
12x 0xFF, Ack-Paket, usw.
Leider kann ich nicht erklären warum immer die 0xFF Zeichen im Buffer sind, da die Kammera nie ein 0xFF versendet.
tech. Daten
PIC18F4580 Quarz 10MHz
arbeite mit PLL -> 40MHz
UART mit 115200 Baud oder mit 14400 -> gleiches Ergebniss
mein Prog:
Code:void main(void) { UINT8 ACKreceived; init(); serialSetup14400(); ACKreceived = false; //send sync-packet while(ACKreceived == false) { write2serial(0xAA); write2serial(0x0D); write2serial(0x00); write2serial(0x00); write2serial(0x00); write2serial(0x00); //brak->its only a break-routine brak(70000); //controll received data if( CAMERA_BUFFER[0] == 0xAA && CAMERA_BUFFER[1] == 0x0E && CAMERA_BUFFER[6] == 0xAA && CAMERA_BUFFER[7] == 0x0D ) { ACKreceived = true; } } //send ACKSYNC-packet write2serial(0xAA); write2serial(0x0E); write2serial(0x0D); write2serial(0x00); write2serial(0x00); write2serial(0x00); } //InterruptMethode: void interrupt MyInterrupt(void) { if( (RCIF == true) ) { CAMERA_BUFFER[gcounter] = RCREG; gcounter++; RCIF = 0; } }







					
					
					
						
Zitieren

Lesezeichen