在MCU軟件開發(fā)中,延時函數(shù)用的非常多,有的是硬件延時,采用定時器,有的是軟件延時,采用循環(huán)等待,不管是采用什么樣的方式,最終達(dá)到的目的都是一樣,為系統(tǒng)功能、時序做鋪墊,下面結(jié)合Atmel Studio 和ASF對延時函數(shù)delay進(jìn)行說明,此軟件庫適用于所有Atmel MCU。
1、關(guān)于Atmel Studio 的使用說明,工程建立,ASF軟件庫添加,請參考:
2、添加 Delay routines (Service) 本例程采用 Systick
3、初始化delay 功能,在main函數(shù)中添加如下代碼:
delay_init(); //延時功能初始化
4、編寫代碼,此例程為LED間隔200ms閃爍,示例代碼如下:
源碼:
#include //包含Atmel MCU軟件庫頭文件
#define LED PIN_PC27 //定義LED所使用的IO口為 PC27
void port_init(void); //聲明函數(shù)體
/************************************************************************/
//* IO 初始化
/************************************************************************/
void port_init(void)
{
struct port_config config_port_pin;
port_get_config_defaults(&config_port_pin);
config_port_pin.direction = PORT_PIN_DIR_OUTPUT; //配置IO口方向為輸出
port_pin_set_config(LED, &config_port_pin); //初始化LED對應(yīng)IO口
}
/************************************************************************/
//* 主程序
/************************************************************************/
int main (void)
{
system_init(); //系統(tǒng)初始化
/* Insert application code here, after the board has been initialized. */
port_init(); //IO初始化
delay_init(); //延時功能初始化
while(1)
{
port_pin_toggle_output_level(LED); //LED對應(yīng)IO電平取反
delay_ms(200); //延時200ms
}
}
-
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350979 -
Atmel
+關(guān)注
關(guān)注
17文章
311瀏覽量
107278
發(fā)布評論請先 登錄
相關(guān)推薦
評論