時間片輪詢方法
方法一:
[cpp]
view plain
copy
void
timerx_handler(
void
)
初始化設定該定時器x毫秒中斷一次,即ms_cnt作為乙個毫秒計時器。
[cpp]
view plain
copy
main(
void
)
if(ms_cnt%y==0)
} } 主迴圈中,每隔x毫秒執行一次task1,每隔y毫秒執行一次task2。
方法二:
[cpp]
view plain
copy
typedef
_task_struct
task;
task task1 = ;
task task2 = ;
定義任務結構體,每隔x時間置位task1執行標誌位task1.run_flag,在main loop中掃瞄並執行;同理task2。
[cpp]
view plain
copy
void
timerx_handler(
void
)
if(task1.time_cnt == 0)
if(task2.run_flag == 0)
if(task2.time_cnt == 0)
} [cpp]
view plain
copy
void
main(
void
)
if(task2.run_flag == 1)
} }
51微控制器 時鐘
1.時鐘週期是機器週期的12倍 機器週期是晶振頻率的倒數 2.51微控制器1個機器週期 12個時鐘週期,頻率為12mhz,則乙個機器週期為1us,具體到定時器程式就是,假如你想定1ms,那麼微控制器每次加乙個一,就要過1us,那麼1ms就要加1000次,所以用65535 1000 64535 再把6...
微控制器 51微控制器時鐘 利用中斷
include include delay delay.h define timeport p0 sbit bit select p2 0 sbit seg select p2 1 sbit key1 p2 2 sbit key2 p2 3 code unsigned char timedata 1...
微控制器時鐘管理
本章節談一下對微控制器時鐘管理上的一些認識,假如說我們拿到一款stm32f103c8t6的微控制器,設定的是外部晶振8m,然後設定分頻為不分頻,那麼執行時鐘就是72m,就是執行乙個指令週期的時間為1 72m,通過乙個指令的執行時間,我們算出了非常簡單的延時函式,比如 簡單的延時函式 void del...