Arduino

아두이노 스레드(Threads) 기본 예제

작성자 임베디드코리아 작성일26-03-03 21:12 조회397회 댓글0건

첨부파일

아두이노 멀티 스레딩 프로그램
라이브러리는 다운로드 하세요!
ArduinoThread-master.zip

---<* Thread_example.ino  *>------------------------------------------
#include <Thread.h>
#include <ThreadController.h>
 
ThreadController controll = ThreadController();

 
//My simple Thread
Thread myThread = Thread();
Thread myThread2 = Thread();
 
int m_nCount = 0;
 
int m_nTCount1 = 0;
int m_nTCount2 = 0;
 
// callback for myThread
void niceCallback()
{
  ++m_nTCount1;
  Serial.print(" niceCallback : ");
  Serial.print(millis());
  Serial.print(" , ");
  Serial.println(m_nTCount1);
}
 
void testCallback()
{
  ++m_nTCount2;
  Serial.print(" testCallback : ");
  Serial.print(millis());
  Serial.print(" , ");
  Serial.println(m_nTCount2);
}
 

void setup() {
  Serial.begin(9600);

  myThread.onRun(niceCallback);
  myThread.setInterval(500);
 
  myThread2.onRun(testCallback);
  myThread2.setInterval(800);
 
  controll.add(&myThread);
  controll.add(&myThread2);
}

void loop() {
  if(Serial.available())
  {
    int c = Serial.read();
  }
 
  // checks if thread should run
  /*if(myThread.shouldRun())
    myThread.run();
   
  if(myThread2.shouldRun())
    myThread2.run();*/
  controll.run(); // 등록된 작업들을 주기마다 실행
 
  // Other code...
  ++m_nCount;
/*
  Serial.print("Main Thread :  ");
  Serial.println(m_nCount);
 
  delay(1000);*/

}
------------------------------------------------------------------------------------------------------------