Facebook
From Chartreuse Crocodile, 1 Year ago, written in C.
Embed
Download Paste or View Raw
Hits: 84
  1. #include <iostream>
  2. #include <thread>
  3. #include <unistd.h>
  4. #include <sys/utsname.h>
  5. #include <signal.h>
  6. #include <sys/wait.h>
  7. #include <wiringPi.h>
  8.  
  9.  
  10.  
  11. int arr[3]={0,2,3};
  12.  
  13. void blink1(int *arr, int i);
  14. void blink2(int *arr, int i);
  15. int main() {
  16.  
  17.     int i = 0;
  18.     wiringPiSetup();
  19.  
  20.  
  21.     for (int m=0;m<3;m++){
  22.        pinMode(arr[m],OUTPUT);
  23.     }
  24.  
  25.     std::thread first(blink1,arr, i);
  26.     std::thread second(blink2,arr, i);
  27.  
  28.  
  29.  
  30.     std::cout<<"Prozess ID:"<<getpid()<<" ID Thread First:"<<first.get_id()<<" ID Thread Second:"<<second.get_id()<<std::endl;
  31.  
  32.  
  33.     first.join();
  34.  
  35.     for (int m=0;m<3;m++){
  36.     pinMode(arr[m],0);
  37.     }
  38.  
  39.     std::terminate();
  40.  
  41.  
  42.  
  43.  
  44. }
  45.  
  46.  
  47. void blink1(int *arr, int i){
  48.  
  49.     for(int m = 0; m<5;m++) {
  50.         digitalWrite(arr[i%3],1);
  51.         sleep(1);
  52.         digitalWrite(arr[i%3],0);
  53.         sleep(1);
  54.     }
  55.     std::cout<<"Erster Thread!"<<std::endl;
  56.  
  57. }
  58.  
  59. void blink2(int *arr, int i){
  60.  
  61.     while(1){
  62.         digitalWrite(arr[i%3],1);
  63.         sleep(1);
  64.         digitalWrite(arr[i%3],0);
  65.         sleep(1);
  66.         i++;
  67.     std::cout<<"Zweiter Thread!"<<std::endl;
  68.  
  69.     }
  70. }