基於CMSIS RTOS2的閃燈序列控制

2021-09-08 13:39:02 字數 940 閱讀 7020

控制燈的基本函式:

#include

"stdbool.h"

void

aplrunledon

(bool on)

led燈的閃爍序列如下:

typedef

struct

ledflashstate;

// led燈的亮滅順序

ledflashstate ledflashstates=

,// 亮燈300ms

,// 滅燈700ms

,// 亮燈100ms

,// 滅燈100ms

,// 亮燈100ms

,// 滅燈700ms

};

那麼有至少2種有效的閃燈控制實現。

__no_return void threadboardled (

void

*argument)

}}

ostimerid_t timeridledflash;

void timerledflash_callback (

void

*arg)

}__no_return void threadboardled (

void

*argument)

}

下面還有一種短期沒問題,但是不能長期執行的方案

__no_return void threadboardled (

void

*argument)

else}}

}

上面的**潛在的問題是通過oskernelgettickcount獲取的系統計數器可能會溢位後環迴。如果系統心跳設定為1毫秒一次,會在執行大約49天後出現計數器溢位。

基於verilog的交通燈

狀態說明 1,初始化 東西南北的燈全亮 2,東西綠燈亮,南北紅燈亮 20秒 3,東西黃燈亮,南北紅燈亮 5秒 4,東西紅燈亮,南北綠燈亮 20秒 5,東西紅燈亮,南北黃燈亮 5秒 6,迴圈 2,3,4,5,如下 timescale 1ns 1ps company author gong create...

基於FPGA的呼吸燈設計

網上類似的標題很多,有一些呼吸燈的設計是基於微控制器的,還有一部分設計是基於fpga的,我也一時手癢,將這兩天自己重新寫的verilog描述語句曬出來,免得壓箱底放久了,出現發霉點。為什麼說重新寫的呢,之前有老師教過,講過呼吸燈,並且畫出了 波形圖和框圖,這段時間,略有閒暇,就將之前學習的程式,重新...

基於verilog的交通燈程式

module traffic clk,sm bit,key,sm seg,en,rst,hold,light1,light2 input clk 定義時鐘引腳 input rst,en 定義復位和使能引腳 output 7 0 sm bit 定義數碼管位選引腳 output 7 0 sm seg 定...