我的问题只能舍弃AVR而用PIC来解决了吗?帮忙!

2020-02-10 08:51发布

我的问题是用AVR接1702SL 射频卡读写芯片,因为是电池供电,对功耗有严格要求,现在我最低只能用到1M振荡器,休眠功耗也还>100微安,再低于1M(内部128K)倒是可以达到10几微安,但与1702SL的SPI通信时序时钟拉的太长读卡失败而读不了卡,我看资料PIC在4M下休眠还可以<1微安,我真得离开AVR再去熟悉PIC来解决吗?  痛苦啊~~~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
42条回答
avr_c
1楼-- · 2020-02-14 07:40
用掉电模式,WDT中断唤醒,个人觉的是最好的,省电  省钱,哈哈~~

省电模式关T2 建议你还是多看看M88 DATASHEET   P139
zhaopl
2楼-- · 2020-02-14 12:53
 精彩回答 2  元偷偷看……
zhaopl
3楼-- · 2020-02-14 16:29
“我用的是省电模式,系统一般可以休300--500ms,每次唤醒查询一下,约200ms,如果有人操作,则工作用3--5秒。 ”写错了,每次唤醒查询一下只用2ms就可以 ,几mA.
zhaopl
4楼-- · 2020-02-14 20:52
还请Oliver、avr_c 二位及其他大侠指教:我用看门狗定时中断唤醒,为什么不进中断,而反复复位呢?呵呵    设置定时分频器还有效,熔丝 WDTON也已经设置上了。

  

     CLI(); //disable all interrupts   

         

         

     MCUSR=0x00;

     WDTCSR=0x18;

     WDTCSR=0x4f;   //使能看门狗超时中断 设置定时分频器

     SEI();

     SMCR|=0x01;    //置位SMCR中的休眠使能位:SE

     SMCR&=0x0f;

     SMCR|=0x04;    //掉电模式               

     asm("sleep" ) ;      

     NOP();







#pragma interrupt_handler wdt_isr:7  //看门狗超时中断

void wdt_isr(void)               

{

  NOP();

  LEDG^=BIT(LED_G);          //LED_G闪烁;

  SMCR&=~0x01;    //清SMCR中的休眠使能位:SE    停止休眠状态

  WDTCSR |= 0x40;      //置位WDIE  相当于喂狗,防止看门狗下一超时到时复位

  NOP();

}
myjnj
5楼-- · 2020-02-14 21:56
WDTON 不可编程,否则一定reset
zhaopl
6楼-- · 2020-02-14 22:44
回35楼:不编程WDTON,好使了!谢谢啊~~
-----此内容被zhaopl于2006-11-08,13:39:25编辑过

一周热门 更多>