关于AVR省电模式
我搞ATMEGA16的节能模式很久了,都搞不了,在这跪求个位大神帮忙,发个例程或资料我学下。16的说明书我看了也做不出。。太菜了。还有I/O时钟clkI/O是什么时钟?是要外接的么?T/C2 的 32.768 kHz 振荡器又是什么??原谅我的无知。。。。{:cry:} {:cry:} {:cry:} 过后比有回报。君子一言驷马难追!! 小兄弟 慢慢来,先把跑马灯基本I/O口搞懂网上很多历程 主动学习。/********************关闭部分功能,按自己设计需求自行添加删减(这个只是一个思路,自己学着运用)************************/
TWCR &= ~(1<<TWIE);关闭TWI
TWCR = (1<<TWINT)|(1<<TWSTO);
TWCR &=~((1<<TWEA)|(1<<TWIE))|(1<<TWEN);//关闭TWI中断。
UCSR1B &= ~((1<<TXEN1)|(1<<RXEN1));//关闭UART
UCSR0B &= ~((1<<TXEN0)|(1<<RXEN0));
ADCSRA = 0x00; //disable adc
/************************设置MCU睡眠(睡眠有多种方式,自己看看手册里MCUCR的描述)***********************************/
MCUCR = 0x30; //使能休眠功能,设为掉电模式。
asm("SLEEP");
把基础搞定其余是思维。加油吧兄弟。还有莫元哦 呵呵 这个问题比较复杂,关键你要实现什么功能,功耗多少能接受。外围电路是一个什么样的结构,如果有点亮的发光管,那你就没有什么必要做低功耗了 工作频率尽量最低,没用到的模块时钟全部关闭,设置外部中断唤醒省电(掉电)模式 我已经可以把功耗做的很低了。可以和我说说你的需求。 现在做的睡眠模式下电流为4uA, 浮生似海 发表于 2013-5-14 08:47 static/image/common/back.gif
小兄弟 慢慢来,先把跑马灯基本I/O口搞懂网上很多历程 主动学习。
avr单片机我一些基础程序我都学得差不多了,就是这个节能模式很少见,所以不太熟悉。 asm("SLEEP");是什么意思?是不是还有加个32.768K的晶振呢?我要实现的功能是去控制一个大功率LED灯。每隔段时间就去PWM调下亮度,期间就省电模式。 fanice 发表于 2013-5-19 15:51 static/image/common/back.gif
我已经可以把功耗做的很低了。可以和我说说你的需求。
就是PWM去控制一个大功率的LED的亮度。当然还要AD转换得到的参数去控制。每隔端时间就控制下,期间就休眠。可以教下我么? 学习 a5123058 发表于 2013-5-21 23:47 static/image/common/back.gif
avr单片机我一些基础程序我都学得差不多了,就是这个节能模式很少见,所以不太熟悉。 asm("SLEEP"); ...
asm("SLEEP");休眠语句呀。 晶振可用内部的 熔丝位配置下就行了。
你用看门狗做定时唤醒也可以功耗大概在7ua左右整体休眠还要看你的负载。 用定时器做休眠唤醒 功耗会很大。
整个过程是这样的:你先把设备运行输出、之后配置单片机端口该关闭的关闭、之后打开看门狗定时器按照你的设计设定合适的时间,再之后调用 “asm("SLEEP");”进行AVR休眠(看数据手册休眠那节),最后一个大循环,整个系统就这样运行明白了吗?我给你的代码已经有很清晰的思路了。整体框架要有然后逐个击破 。基础还是很重要哦。 浮生似海 发表于 2013-5-22 10:47 static/image/common/back.gif
asm("SLEEP");休眠语句呀。 晶振可用内部的 熔丝位配置下就行了。
你用看门狗做定时唤醒也可以 ...
我看了数据手册,您说的看门狗应该是掉电模式的吧?看门狗溢出最长时间是2.1S,但如果我想时间更长,比如10分钟要怎么做?休眠指令后那个大循环是怎样的?按我理解,我会这样写:运行主程序,完成所有任务后进入休眠,达到一定时间后自动唤醒,继续执行SLEEP后的语句。 我还是不太明白异步模块,它的时钟是外接还是内部独立的一个时钟?谢谢了 a5123058 发表于 2013-5-23 09:20 static/image/common/back.gif
我看了数据手册,您说的看门狗应该是掉电模式的吧?看门狗溢出最长时间是2.1S,但如果我想时间更长,比如 ...
首先“大循环”的意思就是 你程序不是执行一次就不执行了吧 “运行》休眠》唤醒,再运行》休眠》唤醒······”就是循环的意思了。十分钟休眠你可以唤醒后什么都不做记一个标记循环N次后达到你的休眠时间了,再运行所需程序(就是加判断语句)。至于你说的异步模块 指的是哪个模块 单片机运用的是一个时钟 ,看门狗有单独的时钟也是内部有的 去看AVR整体内部框图。如果外部控制其它模块那个模块需要时钟那就外挂啦。 这个东西我觉得还是多看看数据手册吧,呵呵
页:
[1]