Arduino - 다 중 스 레 드 라 이브 러 리 SCoop 응용 작업

2847 단어 Arduino
이 라 이브 러 리 의 [퀘 스 트] 기능 을 사용 하려 면 먼저 세 가지 일 을 해 야 합 니 다.
첫째: 인용 라 이브 러 리 \ # include "SCoop. h" [라 이브 러 리 파일 다운로드 주소]http://www.dfrobot.com.cn/community/forum.php?mod=attachment&aid=MTI4MzZ8MWFmMjk1MGF8MTQ1MDcwNTA2M3wwfD
https://share.weiyun.com/45420032c079bbf55a42f32d6a023ca2
두 번 째: setup 함수 에서 mySCoop. start () 명령 void setup () {mySCoop. start ();}
셋째: loop 함수 에서 yield () 명령 void loop () {yield () 를 호출 합 니 다.}
이제 [미 션] 을 사용 할 수 있 습 니 다.두 가지 정의 방식 이 있 습 니 다. 계속 아래 를 보 세 요. 1. 전체 정의: 정의 [작업] 의 setup 과 loop 두 함수 입 니 다."Tasktest" 라 는 이름 의 작업 을 정의 합 니 다: define Task (Tasktest); /defineTask 로 작업 을 정의 합 니 다. TaskTest void TaskTest:: setup () / 이 작업 의 setup () 함 수 를 정의 하여 설정 을 초기 화 합 니 다.{/ / 여 기 는 작업 의 setup 함수 내용} void Tasktest:: loop () / 이 작업 의 loop () 함 수 를 정의 하여 코드 를 순환 적 으로 수행 합 니 다.{/ / 여 기 는 작업 의 loop 함수 내용}
2. 빠 른 정의: 작업 의 loop 함수 만 정의 합 니 다. 이 스 레 드 에서 실행 되 는 동작 이 setup 을 초기 화 할 필요 가 없 으 면 loop 만 순환 하면 defineTaskLoop () 을 사용 하여 이 스 레 드 작업 을 빠르게 정의 할 수 있 습 니 다. 다음 과 같 습 니 다. defineTaskLoop (TaskTest 1) {/ 여 기 는 작업 의 loop 함수 내용 입 니 다}
이 라 이브 러 리 를 사용 한 후 sleep (ms) 를 지연 으로 사용 하 십시오. delay () 를 사용 하지 마 십시오.sleep (ms) 는 현재 스 레 드 만 을 대상 으로 하기 때 문 입 니 다.delay (ms) 는 전 체 를 겨냥 한 것 이다.
마지막 으로 완 성 된 프 리 젠 테 이 션 을 보 여 드 리 겠 습 니 다. LED 2 개 는 각각 100 밀리초 와 1 초 속도 로 반 짝 입 니 다.12 와 13 핀 은 각각 LED 를 연결 한 후 코드 를 실행 하여 효 과 를 봅 시다.

#include "SCoop.h"
//    
defineTask(TaskTest);
void TaskTest::setup()
{
  pinMode(13, OUTPUT);
}
void TaskTest::loop()
{
  digitalWrite(13, HIGH);
  sleep(1000);
  digitalWrite(13, LOW);
  sleep(1000);
}

//    
defineTaskLoop(TaskTest1)
{
  digitalWrite(12, HIGH);
  sleep(100);
  digitalWrite(12, LOW);
  sleep(100);
}

void setup() {
  pinMode(12, OUTPUT);
  mySCoop.start();
}

void loop()
{
  yield();
}


좋은 웹페이지 즐겨찾기