建议你用RTC定时器唤醒吧,休眠前重置RTC,设置5s唤醒,中间产生的外部中断能够唤醒芯片,同时不影响RTC唤 ...
1k08没有RTC 晓飛飛 发表于 2024-8-5 12:37
建议你用RTC定时器唤醒吧,休眠前重置RTC,设置5s唤醒,中间产生的外部中断能够唤醒芯片,同时不影响RTC唤 ...
用的芯片1K08没有RTC定时器 我的实际测试,在睡觉期间被其他中断唤醒,是会如果没有重新设置唤醒定时器的话是会重新计时,,
如果你想睡觉期间被唤醒 再睡觉的时候继续定时的话就选择在被其他中断唤醒后,读取定时器的数值然后计算剩余时间在设置 然后睡觉。。
至于为什么配置定时器之后立刻读取读数是FF,我这里猜测应该是定时器的运行机制的问题,这个定时器可能是一个向上计数的定时器,手册中提及当计数达到设置值之后会唤醒单片机这里可能存在一对影子寄存器,你读取的时候返回的是影子寄存器内的实时计数值,而不是你的设定值。(均为猜测以官方为准,虽然他们从来没有说过,也有可能我没有看到,手册里反正不写)
还有就是定时器唤醒之后读数FF的事情,不是所有的单片机都是这个数值,,有的是0,,如果后期更换单片机的话需要重新测试。 还有一件事 你这里用0XAB11赋值算出来就是大概5秒啊,,你想要几秒? 用附件例子测试,掉电唤醒定时器计数器在进入掉电模式后才开始计数,掉电之前为00,掉电唤醒定时器唤醒后也是00。
使用其他中断唤醒时可以打印出掉电唤醒定时器计数器值。
乘风飞扬 发表于 2024-8-6 09:53
用附件例子测试,掉电唤醒定时器计数器在进入掉电模式后才开始计数,掉电之前为00,掉电唤醒定时器唤醒后也 ...
啊 对 就是有些是0有些是ff,,,这是为啥? _奶咖君_ 发表于 2024-8-6 09:47
还有一件事 你这里用0XAB11赋值算出来就是大概5秒啊,,你想要几秒?
这个定时时间解决了,疑问是读出来的值都是FF,这个看到您上个回答了,我测试下。 _奶咖君_ 发表于 2024-8-6 09:42
我的实际测试,在睡觉期间被其他中断唤醒,是会如果没有重新设置唤醒定时器的话是会重新计时,,
如果你想 ...
如果你想睡觉期间被唤醒 再睡觉的时候继续定时的话就选择在被其他中断唤醒后,读取定时器的数值然后计算剩余时间在设置 然后睡觉。
多次点击按键进入外部中断,读出来的这个值是随机的,且这个会比较小。 本帖最后由 _奶咖君_ 于 2024-8-6 15:00 编辑
cxl 发表于 2024-8-6 11:33
如果你想睡觉期间被唤醒 再睡觉的时候继续定时的话就选择在被其他中断唤醒后,读取定时器的数值然后计 ...
手册中说了 中途唤醒读取到的是在睡觉期间的计数值,可以用这个计数值来计算睡觉的时间。或者简单粗暴一点儿直接用设置值减去这个计数值,得到的差值在配置到寄存器中 _奶咖君_ 发表于 2024-8-6 14:58
手册中说了 中途唤醒读取到的是在睡觉期间的计数值,可以用这个计数值来计算睡觉的时间。或者简单粗暴一点 ...
实际测试这种方法基本可以解决,就是如果频繁进中断还是有问题。定5s的时候,0.5s左右发生一次外部中断还好。感谢!
页:
1
[2]