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;
	}
}