本实验的源码工程在开发板光盘资料的:i.MX6UL终结者光盘资料\04_裸机例程源码\11_gpt_delay 目录下。我们在Ubuntu系统下使用命令“mkdir 11_gpt_delay”建立“11_gpt_delay”文件夹,如图 1所示:
然后使用“cd 11_gpt_delay”命令进入到11_gpt_delay文件夹,如图 2所示:
然后使用命令“cp -r …/10_key_filter/* ./”将上一章试验中的所有内容拷贝到刚刚新建的“11_gpt_delay”里面,如图 3所示:
然后我们只需要修改“drivers/delay”目录下的delay.h和delay.c,两个文件,首先我们打开“drivers/delay/delay.h”文件,在里面输入下面的内容:
1 #ifndef __BSP_DELAY_H
2 #define __BSP_DELAY_H
3
4 #include "imx6ul.h"
5
6
7 /* 函数声明 */
8 void delay_init(void);
9 void delayus(unsigned int usdelay);
10 void delayms(unsigned int msdelay);
11 void delay(volatile unsigned int n);
12 void gpt1_irqhandler(void);
13
14 #endif
我们可以看到在delay.h里面主要添加了几个函数的声明,然后我们打开“deivers/delay/delay.c”文件,在里面输入下面的内容:
1 #include "delay.h"
2
3 /*
4 * @description : 延时有关硬件初始化,主要是GPT定时器
5 GPT定时器时钟源选择ipg_clk=66Mhz
6 * @param : 无
7 * @return : 无
8 */
9 void delay_init(void)
10 {
11 GPT1->CR = 0; /* 清零,bit0也为0,即停止GPT */
12
13 GPT1->