NEC睡眠与唤醒
版主好!各位好!能否给一个NEC单片机睡眠与唤醒的例程!晶振部分介绍的比较复杂,看不明白,请讲解一下谢谢! 楼主精力旺盛,同时学习多种芯片,哈哈,我喜欢!9222内部RC和240K唤醒实例for IAR4.60
在工程上提取的,没有编译测试
#include <io78f9222.h>
#include <intrinsics.h>
#include <migration.h>
//0x0080赋值可选字节和保护字节
__root const char optbyte[] @0x80 = {0x9d,0xff};
void TH1_Init()
//系统中断,每秒100Hz
{
CMP01 = 19; //1880 / 19 = 100Hz
TMHMD1 = 0x80 | 0x50; //定时间隔方式,1.88K内部RC振荡器
MK0 &= ~0x10; //允TH1中断
}
int main( void )
{
unsigned int ti;
PCC = 0x2;
PPCC = 0x02;
TH1_Init();
_EI ();
//WDTM = 0x10; //停止看门狗
//prn(888);
while(1)
{
Wait(50);
ti ++;
prn(SrartAD());
}
}
/*
#pragma vector=INTP0_vect //INT0 中断
__interrupt void INT0(void)
{
}
*/
volatile unsigned char SysTime;
#pragma vector=INTTMH1_vect //TH1 定时中断
__interrupt void TH1(void)
{
LCD_DRV();
if(SysTime) SysTime--;
WDTE = 0xac; //喂狗
}
void Wait(unsigned char tim)
{
SysTime = tim;
while(SysTime)
{
_STOP();
//_HALT();
}
} 谢谢讲解,我仿真的时候执行STOP()后怎么还在继续走指令,怎么没有进入睡眠呀! 请烧到片子里试试,IO要有一个确认的状态,电流在30uA一下的是停止状态,电流在400uA时是空闲状态,电流大于1mA没有睡眠,具体电流看实验的芯片数据
页:
[1]