#include “ioCC2530.h”
#define LED1 P1_0
typedef unsigned int uint;
typedef unsigned char uchar;
uchar count = 0;
void Init_Clock_16MHz();
void Init_Port();
void Timer1_Init();
void main(){
Init_Clock_16MHz();
Init_Port();
Timer1_Init();
while(1){};
}
/*=初始系统时钟函数====*/
void Init_Clock_16MHz()
{
CLKCONCMD |= 0x40; //选择系统时钟源为16MHZ晶振
while(CLKCONSTA & 0x40); //等待晶振稳定
CLKCONCMD |= 0x49; //设置系统主时钟频率为16MHZ 定时器16mhz 时钟速度16mhz
}
/端口初始化函数==/
void Init_Port()
{
//初始化LED灯的I/O端口
P1SEL &= ~0x01; //P1_0作为通用I/O端口
P1DIR |= 0x01; //P1_0端口输出
LED1 = 0;
}
/===定时器1初始化函数0.1s/
void Timer1_Init()
{
T1CTL = 0x0E; //分频系数是128,模模式
T1CCTL0 |= 0x04; //设定定时器1通道0比较模式 xxxx x1xx
T1CC0L = 0xD4; //16MHz时钟128分频定时0.1s
T1CC0H = 0x30; //设先填低8位,再填高8位
T1IE = 1; //使能定时器1中断
T1OVFIM = 1; //使能定时器1溢出中断
EA = 1; //使能总中断
}
/定时器1中断服务函数=/
#pragma vector = T1_VECTOR
__interrupt void Timer1_Sevice()
{
T1STAT &= ~0x01; //清除定时器1通道0中断标志
count++; //累加定时周期
if(count == 10) //0.1s*10=1s
{
LED1 = ~LED1;
count = 0;
}
}