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