//说明:PM1和PM2和PM0的切换,用睡眠定时器(因为睡眠定时器计时时间到后,响应睡眠定时器中断,电源模式会自动从PM1/PM2切换到PM0)。在PM3下,睡眠定时器不起作用,因为32K的晶振都关闭了,故从PM3切换到PM0,用的是外部IO中断。
//“设置睡眠定时器的定时间隔”这一步一定要在“设置电源模式”之前,因为进入睡眠后系统就不会继续执行程序了。
//读取睡眠定时器的当前计数值,顺序必须遵循:读ST0 → 读ST1 → 读ST2
//写入睡眠定时器的比较值,顺序必须遵循:写ST2 → 写ST1 → 写ST0
//当定时器的计数值=比较值时,产生中断)
#include"iocc2530.h"
#define uint unsigned int
#define uchar unsigned char
#define uint8 unsigned char
#define uint32 unsigned long
#define LED_ON 0
#define LED_OFF 1
#define gled P1_0
#define rled P1_1
#define crystal 0
#define rc
#define s1
//延时函数
void delay(uint n)
{
}
void initKey(void)
{
}
void initled(void)
{
}
//设置主时钟
void set_main_clock(source)
{
}
//设置系统低速时钟
void set_low_clock(source)
{
}
//初始化睡眠定时器
void init_sleep_timer(void)
{
}
//led闪烁函数
void blink_led(void)
{
}
//设置睡眠时间
void set_st_period(uint sec)
{
}
void set_powermode(uchar mode)
{
}
void main(void)
{
}
//睡眠定时器中断函数
#pragma vector = ST_VECTOR
__interrupt void ST_ISR(void)
{
}
//P0中断函数
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void)
{
}
http://blog.163.com/a_hui8/blog/static/205830307201263011569606