充电唤醒AVR单片机睡眠模式的方法?

2019-03-24 20:41发布

各位大侠,现在有个疑问,就是用电池供电的单片机-ATTINY24A板子(功能是驱动LED),只有一个按键接INT0(为了便于外部中断唤醒)

一开始电池上电后默认设置为睡眠模式,按一下按键睡眠模式被唤醒且LED暗档,再按一下LED光档,再按一下LED灭且进入睡眠模式,此时若要外接充电器给电池充电就必需得唤醒单片机,本人想用充电的电压触发复位引脚来唤醒不知道这种方法行的通吗,如果行的通请问是不是常用的方法?还有如果这种方法不行请问除了INT0唤醒,其它引脚有唤醒功能吗,如果其它引脚有唤醒功能可以和INT0同时使用吗?还是通过再设置把INT0的功能转移到其它引脚呢?寻求更好的方法?在此谢过…… 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
chunyang
1楼-- · 2019-03-26 22:31
设计成什么关键看你的要求,如果只是自己玩玩,随便怎么做都可以,做产品的话就要看产品的市场定位和档次了。
gh131413
2楼-- · 2019-03-27 04:21
这个说法绝对赞成,另外我的充电不是PWM的,串个电阻经过MOS管控制直接高低电平,因为PWM太麻烦,有时间也想试一下,PWM充电是简单,但是如果要恒流的话又得另开一路ADC,因为前面我已经开了一路ADC了,而且二路ADC不能同时用,好像是要交替着使用,还有麻烦的就是恒流充电到电池电压快满时又得调占空比减小电流进行涓流充电,还有两路的ADC的切换我还没试过,可能有些麻烦要试过才知道,PWM充电的思路不知道我说的对不对?如果不对请多多指教?

程序越长感觉要考虑和实验每一种状态相互的影响,调起来就麻烦(至少对我一个新手来说)
chunyang
3楼-- · 2019-03-27 06:22
 精彩回答 2  元偷偷看……
gh131413
4楼-- · 2019-03-27 12:13
用ADC检测限流电阻的电压来恒流,我以前有试过,问题是ADC有两路的话是不是交替使用?比如:
uint AD1()
{
设置AD1转换
转换结果1
}

uint AD2()
{
设置AD2转换
转换结果2
}

void mian()
{
uint x=0;uint y=0;
其它程序……
while(1)
{
x=AD1();
Y=AD2();
X和Y的值变化范围再作相应处理……
}
}

如上图所示,因为ADC不能同时二路工作,不知道说法有没错误,若交替使用在while(1)下面两个值X,Y是这样操作吗?如果再多几路ADC会不会因为多几路的运行和切换时间影响各自结果的正确性(精确度)???

[ 本帖最后由 gh131413 于 2013-4-17 09:59 编辑 ]
chunyang
5楼-- · 2019-03-27 16:02
两路AD要看是怎么个“两路”,如果AD是硬件上独立的,那么可以同时使用,如果AD只是一路,输入通路则有两路,那么只能分时使用。
gh131413
6楼-- · 2019-03-27 17:03
搞了这么长时间,我发现如果一个程序长些有很多功能的话而以前没做过,不能一下子就写完再调,要一个个功能单独试过,试过OK,那么这个功能再加上去,另外的一个功能再试过OK后再加进去,这样就组成了一个程序,因为如果一下子写到底再找原因的话就感觉很乱不知道从哪下手或者说问题出在哪个部分……

一周热门 更多>