MSP430学习笔记2-跑马灯程序,熟悉定时器寄存器的配置。
2010-07-20 21:58
671 查看
这个例子主要还是熟悉有关定时器A的寄存器配置以及IAR的配置方式。
/*********************************************** 程序功能:实现流水灯以三种流动方式和四种流动速度 的不同组合而进行点亮"流动" ------------------------------------------------ 拨码开关设置:将LED位拨至ON,其余拨至OFF 测试说明:观察流水灯流动顺序和速度的变化 ************************************************/ #include <msp430x14x.h> typedef unsigned int uint; uint i = 0,j = 0,dir = 0; uint flag = 0,speed = 0; //flag--灯光流动方式,speed--灯光流动速度 /****************主函数****************/ void main(void) { /*下面六行程序关闭所有的IO口*/ P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换 P5OUT &= ~BIT7; CCTL0 = CCIE; //使能CCR0中断 CCR0 = 50000; TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,8分频增计数模式 P2DIR = 0xff; //设置P2口方向为输出 P2OUT = 0xff; _EINT(); //使能全局中断 LPM0; //CPU进入LPM0模式各时钟全部工作 } /******************************************* 函数名称:Timer_A 功 能:定时器A的中断服务函数,在这里通过标志 控制流水灯的流动方向和流动速度 参 数:无 返回值 :无 ********************************************/ #pragma vector = TIMERA0_VECTOR __interrupt void Timer_A (void) { if(flag == 0) { P2OUT = ~(0x80>>(i++)); //灯的点亮顺序D8 -> D1 } else if(flag == 1) { P2OUT = ~(0x01<<(i++)); //灯的点亮顺序D1 -> D8 } else { if(dir) //灯的点亮顺序 D8 -> D1,D1 -> D8,循环绕圈 { P2OUT = ~(0x80>>(i++)); } else { P2OUT = ~(0x01<<(i++)); } } if(i == 8) { i = 0; dir = ~dir; } j++; if(j == 10) { i = 0; j = 0; flag++; if(flag == 4) flag = 0; switch(speed)//根据speed的值来选择相应的速度,速度的选择主要通过改变分频来实现 { case 0: TACTL &=~ (ID0 + ID1);//这个地方其实没必要,意思是清零TACTL的78两位 //ID1的值是0x0080 ID2的值是0x0040通过计算就可以得出 TACTL |= ID_3;//改为八分频 break; case 1: TACTL &=~ (ID0 + ID1); TACTL |= ID_2; break; case 2: TACTL &=~ (ID0 + ID1); TACTL |= ID_1; break; case 3: TACTL &=~ (ID0 + ID1); TACTL |= ID_0; break; default: break; } if(flag != 3) speed++; if(speed == 4) speed = 0; } }
相关文章推荐
- MSP430学习笔记2-跑马灯程序,熟悉定时器寄存器的配置。
- 【Spring学习笔记-2】Myeclipse下第一个Spring程序-通过ClassPathXmlApplicationContext加载配置文件
- JDBC基础学习笔记_05_jdbc的程序优化_单立Connection并编写调用配置文件
- 别人:OpenCV学习笔记(一)——安装配置、第一个程序(http://blog.csdn.net/yang_xian521/article/details/6894228)
- PCL学习笔记(1):pcl1.6.0+vs2010环境配置以及第一个pcl程序
- MSP430学习笔记3----定时器学习
- 七、mini2440裸机程序之定时器中断(2)时钟相关寄存器配置
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Hibernate_配置详解>(三十六)
- OpenCV学习笔记(一)——安装配置、第一个程序
- 【C#学习笔记】Lesson3-熟悉Visual Studio-小试牛刀(简易定时器开发)
- [原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序(配置注册servlet,生命周期)
- mini2440学习笔记 之01 配置ADS1.2编译调试程序(在sram中点亮LED)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<数据库连接配置>(二十八)
- python学习笔记一:python的配置和第一个程序
- [Cuda学习笔记]MFC环境中CUDA程序的配置与调试
- VS2017下OpenCV3.2学习笔记(一)安装配置、测试程序
- MSP430学习笔记4-两个定时器产生步进单频音
- USB2.0学习笔记连载(十七):keil实现寄存器的配置及相关函数讲解(一)
- STM32学习笔记2-系统时钟知识及程序配置
- OpenCV学习笔记(01)我的第一个OpenCV程序(环境配置)