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

Re: Threads Kategorie: Programmierung C (von Peter S - 28.05.2005 17:17)
Als Antwort auf Threads von Tom - 26.05.2005 13:37
Ich nutze:
C-Control Pro Mega32, CC-Pro 32 Application Board
Hallo,

hier ein Beispiel wie man Bereiche so absichert das nur einer von zwei Threads herein darf.
Gruss Peter

----

// Beispielprogramm indem ein kritischer Bereich so abgesichert wird,
// das nur einer von zwei Threads in den kritischen Bereich darf
// !!! Dieses Beispiel gilt nur für 2 Threads. Für mehr Threads mu�
// das Programm erweitert werden

int semaphore;

void thread_func(void)
{
    while(true)
    {
        if(semaphore++) Thread_Wait(1);  // Nur der erste Thread muÃ? nicht warten
        // Start kritischer Bereich

        Thread_Delay(400);

        // Ende kritischer Bereich
        semaphore--;
        Thread_Signal(1); // Gib wartenden Thread frei
    }
}

void main(void)
{
    semaphore=0;

    Thread_Start(1,thread_func);  // Starte ersten Thread
    Thread_Start(2,thread_func);  // Starte zweiten Thread

    while(true);
}

> Hallo,
>
> habe eine Frage zu Threads:
>
> habe 2 Threads welche 'daten' auf ein I2C Display
> schreiben. Wie muss ich nun die Treads verriegeln das
> sie sich nicht in die Quere kommen, oder wird das vom
> 'OS' aus gemacht? (ist leider im Handbuch -5.3.15 Threads-
> nicht richtig beschrieben.
>
> Danke
>
> Tom


    Antwort schreiben


Antworten: