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

【CuriosityNano评测报告】+ AVR128DA48之迟到的点灯

[复制链接]
1312|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 hu9jj 于 2020-8-9 13:58 编辑

    安装程序、升级PACK、用MCC生成代码、编译失败、卸载程序重新安装,如此反复十几次,甚至还更换操作系统,从WIN7、WIN8、到WIN10进行测试,通过MCC生成的项目基本代码仍然是编译失败。我对MCC生成的代码深信不疑,一直认为是MPLAB X IDE安装问题或PACK未全部升级到位。经过一周多时间的折腾,我不由改变了观念,决定还是检查编译失败的提示信息。下面是编译失败的提示信息:


    经过分析提示信息,编译出错的原因是PORTG和VPORTG两个结构体未定义,再仔细分析代码,发现分别对PORTA~PORTF都有类似的宏定义,我想找到结构体定义的文件添加对PORTG结构体的定义,但一直没有找到。转而一想,在用户手册中并没有发现AVR128DA48芯片有PORTG端口,也许这个PORTG端口是AVR128DA64芯片才有的,再次仔细查看用户手册确认无误,确定是MCC生成的代码有误,于是便根据提示信息逐一注释掉相关的代码,编译下载终于成功了,LED终于闪烁起来了。在这个“坑”里我足足花费了一周时间,因为只有在早晨7时之前网络比较通畅,下载安装容易成功,所以这段时间我都是早晨5点多就打开电脑安装程序,然后进行测试。


    下面是测试的视频,本来想转换为动画的,下载了一款“风云xx”,转换后Loge水印占据了图片约三分之一的位置,按提示微信登录后,被要求支付90元/月,而我又很少使用此软件,于是只好放弃并卸载软件。
VID_20200809_060936.rar (5.98 MB)

    在测试过程中,我仔细阅读了用户手册,而我无英文阅读能力,只能通过百度翻译软件,为此索性编辑成“中文版”的用户手册,供有需要者参考,当然应以英文版的为准。
AVR128DA48UG.docx (3.54 MB)

使用特权

评论回复
沙发
hu9jj|  楼主 | 2020-8-9 16:47 | 只看该作者
在上述测试代码中,延时的循环代码是放在main函数中,我试图将延时循环独立到一个延时函数时,同样的代码却不能让LED闪烁,还没有找出原因所在。下面是测试的代码:
void delay_ms(uint16_t wait)
{
    uint16_t i,j;
    for(i=0; i<wait; i++)
        for(j=0; j<200; j++);
}

/*
    Main application
*/
int main(void)
{
    uint8_t i,j;
   
    /* Initializes MCU, drivers and middleware */
    SYSTEM_Initialize();
   
    /* Replace with your application code */
   
    while (1){
        LED_Y_Toggle();
//        delay_ms(200);
        for(i=0; i<200; i++)
            for(j=0; j<200; j++);
    }
}

使用特权

评论回复
板凳
电子xiaocainiao| | 2020-8-9 22:24 | 只看该作者
简单的延时都不能闪烁?配置的问题吗?

使用特权

评论回复
地板
hu9jj|  楼主 | 2020-8-10 07:26 | 只看该作者
电子xiaocainiao 发表于 2020-8-9 22:24
简单的延时都不能闪烁?配置的问题吗?

    原因不清楚,应该与配置无关,按说相同的代码独立出去,无非就是稍微增加了延时时间(调用及返回时间),但实际测试却不是这样。

使用特权

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

本版积分规则

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

144

主题

1031

帖子

11

粉丝