三少爷1991912的个人空间 https://bbs.21ic.com/?989724 [收藏] [复制] [RSS]

日志

本程序是基于MSP430单片机内部定时器B中断实验,功能:用定时器B来精确流水灯时间间隔. ...

已有 661 次阅读2015-5-14 21:01 |系统分类:单片机| MSP324, 定时器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中断
#pragma vector=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);
}

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)