CyberPunker 发表于 2011-4-1 18:46:20

再详细描述一下现象,不知道问题出在哪里

MSP430F1232,32K晶振

    原来是这样做的:
    启动后,时钟默认,WDT关闭,设置TimerA增计数到0XFFFF后中断,然后主程序中死循环LPM3休眠。
    在中断处理程序中执行大概50ms的样子。

    现在为了低功耗需要延长中断时间,同时要使用看门狗保证稳定性,做了修改:
    启动后,把ACLK的时钟源,也就是32K的外接晶振8分频为4K, WDT设置成那个WDT_ARST_1000,也就是变成 1*8 秒了, 设置TimerA增计数到大概 4s 的时候中断,然后主程序中死循环LPM3休眠。
    在中断处理程序中先喂狗,然后执行原来的那段50ms的程序。 但奇怪的时候,发现时间也由50ms变成了原来的8倍到400ms了。

    我就奇怪了,ISR中应该是Active模式了吧,CPU使用的MCLK,时钟源是默认的DCO, 而WDT和TimerA的时钟是ACLK,两者没有关系啊,为何也变慢了呢?
    大家觉得问题出在什么地方?
页: [1]
查看完整版本: 再详细描述一下现象,不知道问题出在哪里