Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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)