公司介紹網(wǎng)站怎么做只要做好關(guān)鍵詞優(yōu)化
周期
時(shí)鐘周期:也叫振蕩周期,就是單片機(jī)外接晶振的倒數(shù),如12Mhz,周期就是1/12us,最小的時(shí)間單位。頻率越高,速度越快
指令周期:執(zhí)行一條指令需要的時(shí)間,一般由若干個(gè)機(jī)器周期組成
機(jī)器周期:一個(gè)指令的基本操作(取指,分析,執(zhí)指)所需要的時(shí)間為機(jī)器周期,一般由12個(gè)時(shí)鐘周期組成? 機(jī)器周期 = 12/晶振頻率
總線周期:CPU通過(guò)總線對(duì)外部進(jìn)行一次訪問(wèn)需要的時(shí)間? ?一個(gè)總線周期一般包含4個(gè)時(shí)鐘周期?
主頻(時(shí)鐘頻率):1秒鐘,時(shí)鐘周期的個(gè)數(shù)為主頻?
關(guān)于定時(shí)器的使用
1、滴答定時(shí)器,用于單一定時(shí)
rt_tick_t start;
start = rt_tick_get()if(rt_tick_get() - start < 3*1000)
{}
else
{}
2、使用rt_thread_mdelay(),用于多個(gè)定時(shí)處理
需要?jiǎng)?chuàng)建一個(gè)獨(dú)立的任務(wù),如果需要重新定時(shí),需要?jiǎng)h除改線程
rt_thread_t ruigang_output3_thread = RT_NULL; // 用于保存RUIGANG_OUTPUT3線程的句柄
void RUIGANG_OUTPUT3(void *param)
{while(1){if(!pi_in.pi_close && !pi_in.pi_reset && RUIGANG_Flag){contrl_pin(_24V_CNTL3, PIN_HIGH, PenFaTime5Sec);contrl_pin(_24V_CNTL3, PIN_LOW, PenFaTime3Min); contrl_pin(_24V_CNTL3, PIN_HIGH, PenFaTime3Sec);contrl_pin(_24V_CNTL3, PIN_LOW, PenFaTime5Min);rt_pin_write(_24V_CNTL3, PIN_HIGH);rt_thread_mdelay(PenFaTime5Min*60);}else{continue;}rt_thread_mdelay(10);}
}if (ruigang_output3_thread != RT_NULL){rt_thread_delete(ruigang_output3_thread); // 刪除當(dāng)前線程}ruigang_output3_thread = rt_thread_create("RUIGANG_OUTPUT3",RUIGANG_OUTPUT3,RT_NULL,1024,PRIORITY_OUT3,10);if (ruigang_output3_thread != RT_NULL){rt_thread_startup(ruigang_output3_thread); // 啟動(dòng)新線程}
3、軟件定時(shí)器 1秒定時(shí)器? 時(shí)間到了? 會(huì)自用調(diào)用 回調(diào)函數(shù)? ?
用于單一定時(shí)
#include <rtthread.h>// 定時(shí)器的回調(diào)函數(shù)
static void timer_callback(void* parameter)
{rt_kprintf("Timer tick\n");
}int main(void)
{// 定義定時(shí)器句柄rt_timer_t timer;// 創(chuàng)建軟件定時(shí)器timer = rt_timer_create("mytimer", // 定時(shí)器名稱(chēng)timer_callback, // 定時(shí)器到期時(shí)調(diào)用的回調(diào)函數(shù)RT_NULL, // 傳給回調(diào)函數(shù)的參數(shù)rt_tick_from_millisecond(1000), // 定時(shí)周期,單位為tick。這里使用1秒作為周期。RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER); // 定時(shí)器標(biāo)志:周期性和軟件定時(shí)器// 判斷定時(shí)器是否創(chuàng)建成功if (timer != RT_NULL){// 啟動(dòng)定時(shí)器rt_timer_start(timer);}return 0;
}