void
ledWork(void
*
while(1)
{
if(flag==0){
pthread_exit(NULL);
}
digitalWrite(ALedPin,HIGH);
delay(500);
digitalWrite(ALedPin,LOW);
digitalWrite(BLedPin,HIGH);
delay(500);
digitalWrite(BLedPin,LOW);
}
}
Die Funktion ledWork() hilft beim Einstellen des Arbeitszustands dieser beiden LEDs: Sie leuchtet die grüne LED
0,5 Sekunden lang auf und erlischt dann. In ähnlicher Weise leuchtet die rote LED 0,5 Sekunden lang auf und erlischt
dann.
void
buzzWork(void
*
while(1)
{
if(flag==0){
pthread_exit(NULL);
}
if((note>=800)||(note<=130)){
pitch
=
}
note=note+pitch;
softToneWrite(BeepPin,note);
delay(10);
}
}
Mit der Funktion summWork() wird der Arbeitszustand des Summers eingestellt. Hier stellen wir die Frequenz zwi-
schen 130 und 800 ein, um sie in einem Intervall von 20 zu akkumulieren oder abzunehmen.
void
on(){
flag
=
1;
if(softToneCreate(BeepPin)
printf("setup softTone failed
return;
}
pthread_t tLed;
pthread_create(&tLed,NULL,ledWork,NULL);
pthread_t tBuzz;
pthread_create(&tBuzz,NULL,buzzWork,NULL);
}
In der Funktion on ():
1) Definieren Sie die Markierung "flag = 1", die das Ende des Kontrollthreads angibt.
2) Erstellen Sie einen softwaregesteuerten Ton-Pin BeepPin.
3) Erstellen Sie zwei separate Threads, damit die LED und der Summer gleichzeitig arbeiten können.
pthread_t tLed: Deklariert einen Thread tLed.
pthread_create(&tLed,NULL,ledWork,NULL):Erstellen Sie den Thread und sein Prototyp lautet wie folgt:
1.9. 3 Erweiterung
arg){
*
arg){
*
-pitch;
==
-1){
!");
SunFounder Da Vinci Kit
351