Sky_chen4 发表于 2025-4-6 03:00:10

王昱顺 发表于 2025-4-5 07:47
我修改了一下例程,现在应该可以了,需要将EEPROM绑定函数放到程序最开始。

可以参考我的设置,我给通 ...

//代码1
        WTST = 0;                // 设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
        EAXSFR();                // 扩展SFR(XFR)访问使能
        CKCON = 0;      // 提高访问XRAM速度
       
        usb_init();

        set_eeprom_mode(Hex_Mode, &start_cnt, sizeof(start_cnt));//绑定变量到EEPROM
        set_eeprom_sync(Pull);//拉取变量的值到本地变量
       
        set_timer_mode(Timer0, "1ms", Timer_End);
        set_timer_isr(Timer0, set_task_mode);
       
        set_io_mode(pu_mode, Pin50, Pin_End);
       
        EA = 1;


        start_cnt++;//开机次数加1
        set_eeprom_sync(Push);//将本地变量的值更新到EEPROM

//代码2
        WTST = 0;                // 设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
        EAXSFR();                // 扩展SFR(XFR)访问使能
        CKCON = 0;      // 提高访问XRAM速度
       
        usb_init();
       
        set_timer_mode(Timer0, "1ms", Timer_End);
        set_timer_isr(Timer0, set_task_mode);
       
        set_io_mode(pu_mode, Pin50, Pin_End);
       
        EA = 1;

        set_eeprom_mode(Hex_Mode, &start_cnt, sizeof(start_cnt));//绑定变量到EEPROM
        set_eeprom_sync(Pull);//拉取变量的值到本地变量
        start_cnt++;//开机次数加1
        set_eeprom_sync(Push);//将本地变量的值更新到EEPROM

Sky_chen4 发表于 2025-4-6 03:01:59

王昱顺 发表于 2025-4-5 07:47
我修改了一下例程,现在应该可以了,需要将EEPROM绑定函数放到程序最开始。

可以参考我的设置,我给通 ...

成功了,发现问题所在了,如果绑定在时间中断之前就可以正常使用如代码1,,但是绑定在之后就会卡死,如代码2.不知道你们会不会出现这种情况

王昱顺 发表于 2025-4-6 10:51:24

Sky_chen4 发表于 2025-4-6 03:01
成功了,发现问题所在了,如果绑定在时间中断之前就可以正常使用如代码1,,但是绑定在之后就会卡死,如 ...

好的我测试一下,看看问题在哪里

zhangrenbee 发表于 2025-4-6 21:48:27

希望库不要占用太多资源

gzlai 发表于 2025-4-7 09:26:05

狠人,放假持续更新{:4_245:}

王昱顺 发表于 2025-4-7 11:29:34

Sky_chen4 发表于 2025-4-6 03:01
成功了,发现问题所在了,如果绑定在时间中断之前就可以正常使用如代码1,,但是绑定在之后就会卡死,如 ...
您好,目前已定位问题为多次初始化导致的问题,现已修复完成

经测试,定时器操作函数在EEPROM操作函数之前也没有问题了

更新后的内容详见一楼下载链接和二楼的更新日志

锦浩 发表于 2025-4-7 16:34:41

第一次用AI8051U的专用库,写了一个点亮LED灯的小程序,P20外接一个共阴极的led,为什么点不亮,咨询下

#include <AI8051U.H>
#include "set_io.h"


void main(void)
{
    EAXFR = 1;        //允许访问拓展寄存器
    WTST = 0;        //设置程序代码等待参数
    CKCON = 0;        //设置外部数据总线速度最快
       
        set_io_mode(pp_mode,Pin20,Pin21,Pin22,Pin23,Pin24,Pin25,Pin26,Pin27,Pin_End);
       
        while(1)
        {
                P20=1;
               
        }
}

锦浩 发表于 2025-4-7 16:35:50

锦浩 发表于 2025-4-7 16:34
第一次用AI8051U的专用库,写了一个点亮LED灯的小程序,P20外接一个共阴极的led,为什么点不亮,咨询下

#i ...

烧录和编译都正常

王昱顺 发表于 2025-4-7 16:57:29

锦浩 发表于 2025-4-7 16:34
第一次用AI8051U的专用库,写了一个点亮LED灯的小程序,P20外接一个共阴极的led,为什么点不亮,咨询下

#i ...

可以从以下方面检查:
1.首先确认电路上连接正确,LED的正极是在P20上,共阴极端口接地,最好驱动部分加入限流电阻
2.确认单片机端口是否虚焊,或者提供你的电路图和程序
3.程序上看并没有任何问题,库函数也是都经过验证的,主要排查共阴极端口接到哪里了,这部分可以使用万用表测量查看。I/O口默认都是输出1的,不设置的情况下输出0。
4.如果使用了I/O口驱动共阴极端口,那么需要共阴极端口写0才可以输出低电平

如果经过以上步骤排查仍然不行,欢迎再次询问

王昱顺 发表于 2025-4-15 10:39:20

协程原理与应用深度讲解-快速掌握多线程


页: 4 5 6 7 8 9 10 11 12 13 [14] 15
查看完整版本: Ai8051U-32Bit 创新风格库函数, 4/26更新,持续完善,USB型,内部视频培训, 听取建议