本来准备驱动LCD5110显示屏的,但调试多日均无收获,只好先测试按键。首先开始的是按键的轮询方式,在主循环中捕捉按键,由于LCD显示尚未调试完毕,无法观看按键效果,只好用改变LED闪烁频率来体现,下面是相关的测试代码:
int main(void)
{
uint16_t wait,i;
wait = 100;
/* Initializes MCU, drivers and middleware */
SYSTEM_Initialize();
LED_Y_SetHigh();
/* Replace with your application code */
// LCD_init();
LED_Y_SetLow();
// Display_main();
while (1){
LED_Y_Toggle();
delay_ms(wait);
// Display_main();
if(0 == KEY_0_GetValue()){
wait <<= 1;
if(wait > 2000)
wait = 100;
// Display_main();
}
}
}
测试过程中发现,由于系统生成的_delay_ms()函数只能接收常量参数,所以只有自定义延时函数,但自定义的延时函数在MAIN文件中无论是出现在何处,编译虽能顺利通过,但延时并不起作用,只能将函数写在其他文件中,然后通过include包含头文件,这个函数才能有效,这也许是编译器的问题,不知道其他的坛友有没有发现这个问题,厂家测试过没有?
由于LED闪烁是通过空循环延时实现的,所以影响到轮询按键的操作效果,下一步准备测试按键的中断方式,同时通过定时器来控制LDE的闪烁,这样体验的效果会更好些。
下面是测试项目的压缩包:
mytest.X.rar
(202.91 KB)
|