Re: Serial_IRQ_Info Kategorie: Programmierung C (von Jo - 12.11.2010 20:11) | |
Als Antwort auf Serial_IRQ_Info von Franz - 12.11.2010 19:11
| |
> Hallo, > > kann mir einer sagen warum das nicht klappt, ich weis nicht mehr weiter .... > > ********************************************* > byte buffer[41]; > > > void main(void) > { > byte count; > count=0; > Serial_Init_IRQ(0,buffer,20,15,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD38400); > while(1) > { > AbsDelay(4000); > count=Serial_IRQ_Info(0,RS232_FIFO_RECV); > Msg_WriteWord(count); > } > } > *********************************************** > > > COUNT bleibt einfach null, Einstellungen stimmen auch(im Anhang Einstellungen von HTerm)?! > > > > ich hoffer Ihr könnt helfen. > > Grü�e > Liegt am AbsDelay in der Hilfe steht: Die Funktion Absdelay() wartet eine bestimmte Anzahl von Millisekunden. Die Funktion arbeitet zwar sehr genau, aber unterbricht nicht nur die Abarbeitung des aktuellen Threads, sondern lä�t den Bytecode Interpreter insgesamt warten. Interrupts werden zwar registriert, aber die Interruptroutinen in dieser Zeit nicht abgearbeitet, da auch dafür der Bytecode Interpreter nötig ist. Beim arbeiten mit Threads immer Thread_Delay und nicht AbsDelay benutzen. Wird trotzdem z.B. ein AbsDelay(1000) benutzt, so tritt folgender Effekt auf: Da der Thread erst nach 5000 Zyklen (Default Wert) zum nächsten Thread wechselt, würde der Thread 5000 * 1000ms (5000 Sek.) laufen, bis der nächste Thread anfangen könnte zu arbeiten. | |
Antwort schreiben Antworten: Re: Serial_IRQ_Info (von Franz - 12.11.2010 20:30) Re: Serial_IRQ_Info (von ulrich korth - 13.11.2010 11:51) Re: Serial_IRQ_Info (von Franz - 13.11.2010 22:28) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum