打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测试报告】+ AVR128DA48之按键测试和MAIN文件函数

[复制链接]
1919|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hu9jj|  楼主 | 2020-8-13 10:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本来准备驱动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)

使用特权

评论回复
沙发
CoolSilicon| | 2020-8-13 11:10 | 只看该作者
你可以看编译器手册, 关于_-delay_xxxx相关的内容的,

使用特权

评论回复
板凳
hu9jj|  楼主 | 2020-8-13 14:21 | 只看该作者
CoolSilicon 发表于 2020-8-13 11:10
你可以看编译器手册, 关于_-delay_xxxx相关的内容的,

    所以我只有自己写一个函数来接收变量参数了,但这个函数写在MAIN.c文件中没有作用,只有写在其他文件中才起作用,不知道是何原因。

使用特权

评论回复
地板
zeshoufx| | 2020-8-13 21:18 | 只看该作者
谢谢分享【AVR128DA48之按键测试】

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:Microchip
简介:让我们来为您提供帮助。我们可提供各种资源来帮助您解决一切问题。是否需要与我们的客户支持团队联系?您可以通过电话、在线聊天功能或电子邮件与他们联系。

151

主题

1059

帖子

11

粉丝