Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hallo, > > verwende seit einiger Zeit die RS232-UART0 meiner AVR32 Unit. Klappt prima. > Beim Einsatz der anderen UART´s habe ich keine empfangene > Zeichen im Puffer (Serial_IRQ_Info(1,....) = 0) > Habe ich vielleicht ein Zeitproblem? > Wer kann mir helfen? > > Vielen Dank schon mal im Voraus. > > Gruss Roland > > > Folgendes Testprogramm: > > // Definition > > #define UART0 0 > #define FRAME0 450 > > #define UART1 1 > #define FRAME1 400 > > // ***************************************************************************** > // Declaration > byte Buffer0[SERIAL_BUF(FRAME0,FRAME0)]; // UART0 > int Buffer0_Index; // " > int Buffer0_Anzahl; // " > byte Data_Buffer0[FRAME0]; // " > > byte Buffer1[SERIAL_BUF(FRAME1,FRAME1)]; // UART1 > int Buffer1_Index; // " > int Buffer1_Anzahl; // " > byte Data_Buffer1[FRAME1]; // " > > //****************************************************************************** > /*------------------------------------------------------------------------------ > Initialisierung > ------------------------------------------------------------------------------*/ > void init(void) > { > // Init LED > Port_Attribute(PORT_LED1,PORT_ATTR_OUTPUT|PORT_ATTR_DRIVE_MIN); > Port_Attribute(PORT_LED2,PORT_ATTR_OUTPUT|PORT_ATTR_DRIVE_MIN); > > // Init UART0 8 Bit, 1 Stopbit,1 Stopbit > Serial_Init_IRQ(UART0,Buffer0,FRAME0,10,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); > > // Init UART1 8 Bit, 1 Stopbit,1 Stopbit > Serial_Init_IRQ(UART1,Buffer1,FRAME1,10,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); > > }// ende Init > > /*------------------------------------------------------------------------------ > Abfrage UART1 > ------------------------------------------------------------------------------*/ > void abfrage_uart1(void) > { > int sz; > > sz=0; // serielle Zeichen > Buffer1_Index=0; > > if( Serial_IRQ_Info(1,RS232_FIFO_RECV) != 0) //Daten verfügbar? > { > Port_WriteBit(PORT_LED2,PORT_ON); > > while(1) // Daten lesen > { > sz=Serial_ReadExt(1); > if(sz == 0x100) break; > if(Buffer1_Index>324) break; > Buffer1_Index++; > Data_Buffer1[Buffer1_Index]=sz; > AbsDelay(1); > } // Ende While > > Port_WriteBit(PORT_LED2,PORT_OFF); > > } // Ende If > > AbsDelay(500); // 500ms > > } // Ende abfrage_uart2 > > /*------------------------------------------------------------------------------ > Abfrage UART0 > ------------------------------------------------------------------------------*/ > void abfrage_uart0(void) > { > int sz; > > sz=0; // serielle Zeichen > Buffer0_Index=0; > > if( Serial_IRQ_Info(0,RS232_FIFO_RECV) != 0) //Daten verfügbar? > { > Port_WriteBit(PORT_LED1,PORT_ON); > while(1) // Daten lesen > { > sz=Serial_ReadExt(0); > if(sz == 0x100) break; > if(Buffer0_Index>392) break; > Buffer0_Index++; > Data_Buffer1[Buffer0_Index]=sz; > AbsDelay(1); > } // Ende While > > Port_WriteBit(PORT_LED1,PORT_OFF); > > } // Ende If > > AbsDelay(500); // 500ms > > } // Ende abfrage_uart0 > > /*------------------------------------------------------------------------------ > Main Programm > ------------------------------------------------------------------------------*/ > void main(void) > { > init(); > > while(1) > { > abfrage_uart0(); > Msg_WriteInt(Buffer0_Index); > Msg_WriteChar(13); > > abfrage_uart1(); > Msg_WriteInt(Buffer1_Index); > Msg_WriteChar(13); > > } // Ende while > } // Ende Main > > > > >