【记录】freeRTOS-使用任务

本文介绍了如何在ArduinoUno中使用C++编写一个结构体定义LED闪烁任务,包括定义LEDFLASH结构、设置LED引脚和延迟时间,以及通过xTaskCreate创建并控制两个独立的LED闪烁任务。
摘要由CSDN通过智能技术生成
byte LED1_PIN = 23;
byte LED2_PIN = 21;

typedef struct{
  byte pin;
  int delaytime;
} LEDFLASH;


void LedFlash(void *pt){
  LEDFLASH *ptLedFlash = (LEDFLASH *)pt;        // 定义结构体指针指向传参
  byte pin = ptLedFlash->pin;                   // 引脚
  int delaytime = ptLedFlash->delaytime;        // 延时时间

  pinMode(pin,OUTPUT);
  while(1){
    digitalWrite(pin,!digitalRead(pin));
    vTaskDelay(delaytime/portTICK_PERIOD_MS);   // 1千个tick
  }
}

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

  LEDFLASH led1,led2;
  led1.pin = 23;  led1.delaytime = 1000;
  led2.pin = 21;  led2.delaytime = 3000;

  if( xTaskCreate(LedFlash, "FlASH LED", 1024, (void *)&led1,1, NULL) == pdPASS );    // 第四个参数为传入参数
    Serial.println("Task1 created.\n");
  if( xTaskCreate(LedFlash, "FlASH LED", 1024, (void *)&led2,1, NULL) == pdPASS );
    Serial.println("Task2 created.\n");
}

void loop() {

}

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值