MSP430单片机定时器B中断实验
时间:12-01
来源:互联网
点击:
本程序是基于MSP430单片机内部定时器B中断实验,功能:用定时器B来精确流水灯时间间隔.
#include "MSP430F149.h"
#define uchar unsigned char
#define uint unsigned int
uchar LedData=0x80;
uchar num=50;//中断50次让LED右移一位
//定时器A初始化
void InitTimerB(){
TBCTL=TBSSEL1+ID1+ID0+MC0+TBCLR;//选择1/8SMCLK 增计数 清除TAR
TBCCTL0=CCIE;//CCR0中断允许 比较模式
TBCCR0=10000;//时间间隔10ms
}
//定时器A中断
#pragmavector=TIMERB0_VECTOR
__interrupt void TimerBINT(){
num--;
if(num==0){
LedData>>=1;//右移一位
if(LedData==0x00) LedData=0x80;
P4OUT=LedData;//P4口输出数据
num=50;//中断50次为0.5s
}
}
void main(){
InitClock();//初始化时钟
InitTimerB();//定时器B初始化
P4DIR=0xFF;//P4口输出方向
_EINT();//打开中断
while(1);
}
#include "MSP430F149.h"
#define uchar unsigned char
#define uint unsigned int
uchar LedData=0x80;
uchar num=50;//中断50次让LED右移一位
//定时器A初始化
void InitTimerB(){
TBCTL=TBSSEL1+ID1+ID0+MC0+TBCLR;//选择1/8SMCLK 增计数 清除TAR
TBCCTL0=CCIE;//CCR0中断允许 比较模式
TBCCR0=10000;//时间间隔10ms
}
//定时器A中断
#pragmavector=TIMERB0_VECTOR
__interrupt void TimerBINT(){
num--;
if(num==0){
LedData>>=1;//右移一位
if(LedData==0x00) LedData=0x80;
P4OUT=LedData;//P4口输出数据
num=50;//中断50次为0.5s
}
}
void main(){
InitClock();//初始化时钟
InitTimerB();//定时器B初始化
P4DIR=0xFF;//P4口输出方向
_EINT();//打开中断
while(1);
}
MSP430单片机定时器中断实 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)