[技术问答] [MS51FB9AE]求助一个定时器0问题

[复制链接]
867|10
 楼主| pocker5200 发表于 2022-4-7 02:29 | 显示全部楼层 |阅读模式
本帖最后由 pocker5200 于 2022-4-7 03:11 编辑

芯片MS51FB9AE,板子NuTiny V2.1
功能定时器0做一个1ms定时器,使用内部校准的HIRC_166
代码刚开始是正常的,后来调试时发现程序跑得很慢,
用逻辑分析仪看定时器0的IO反转频率只有10.5Hz左右,慢了近100倍,
不知道哪里出了问题。试了一下1.004固件库的Timer0_mode_1_Interrupt例程,定时器IO输出频率也不对,大概慢了1.5倍。
代码都是扒的参考代码,如下

#define HSE_FREQ        16600000UL//外部时钟频率
#define TIMER0_DIV12_VALUE_1ms_HSE_FREQ        65536-HSE_FREQ/12/1000

void Timer0_1ms_init(void)
{
        TIMER0_MODE1_ENABLE;//16bit mode
        TIMER0_FSYS_DIV12;
        TH0 = HIBYTE(TIMER0_DIV12_VALUE_1ms_HSE_FREQ);
        TL0 = LOBYTE(TIMER0_DIV12_VALUE_1ms_HSE_FREQ);
        ENABLE_TIMER0_INTERRUPT;//使能timer0中断
        set_TCON_TR0;//Timer0 run
}
void Timer0_ISR (void) interrupt 1          //
{   
        //_push_(SFRS);
    local_1ms++;
        P04 = ~P04;
        //_pop_(SFRS);
}
void main (void)
{
    MODIFY_HIRC(HIRC_166);
    //WDT_init();//看门狗1.638s初始化
        Timer0_1ms_init();//1ms定时器初始化
        set_EA;//使能全局中断
}
redone 发表于 2022-4-14 10:36 | 显示全部楼层
整体都慢的话,是不是晶振虚了
sadicy 发表于 2022-4-15 15:04 | 显示全部楼层
时钟有问题
antusheng 发表于 2022-4-18 19:11 | 显示全部楼层
是不是时钟或者晶振没有配置好。
 楼主| pocker5200 发表于 2022-4-29 01:16 | 显示全部楼层
代码里面有定时器重配置,错开就行了.
tpgf 发表于 2022-5-2 09:33 | 显示全部楼层
使用的是外部晶振吗
keaibukelian 发表于 2022-5-2 09:37 | 显示全部楼层
晶振虚接不会导致变慢的
labasi 发表于 2022-5-2 09:44 | 显示全部楼层
只能一步步的排除问题了
paotangsan 发表于 2022-5-2 10:03 | 显示全部楼层
先看看晶振有没有问题
renzheshengui 发表于 2022-5-2 10:11 | 显示全部楼层
所有的都成倍的变慢了吗
wakayi 发表于 2022-5-2 10:20 | 显示全部楼层
看初始化代码没啥问题啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

28

帖子

0

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