[PIC®/AVR®/dsPIC®产品] 【CuriosityNano评测报告】+ AVR128DA48之迟到的点灯

[复制链接]
1863|3
 楼主| hu9jj 发表于 2020-8-9 09:32 | 显示全部楼层 |阅读模式
本帖最后由 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元/月,而我又很少使用此软件,于是只好放弃并卸载软件。


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

151

主题

1063

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部