电子说
在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
}
}
全部0条评论
快来发表一下你的评论吧 !