单片机MSP430 - Timer_A 定时器中断程序

发布者:老卫最新更新时间:2020-01-16 来源: eefocus关键字:单片机  MSP430  Timer_A  定时器中断 手机看文章 扫描二维码
随时随地手机看文章

#include "cc430x613x.h"

 

void main()

{

    WDTCTL = WDTPW + WDTHOLD;               // 停止看门狗定时器

    P3DIR |= 0x04;                          // P3口初始化,设置为输出模式

    

    TA0CCR0 = 32768;                        // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1s

    TA0CCTL0 = CCIE;                        // TA0CCR0捕获/比较中断寄存器中断使能

    TA0CTL = TASSEL_1 + MC_1 + TACLR;       // TASSEL_1,ACLK时钟源  MC_1,增计数模式

    

    _BIS_SR(LPM3_bits + GIE);               // 进入LPM3低功耗模式,开启总中断

}

 

#pragma vector = TIMER0_A0_VECTOR

__interrupt void Timer_A(void)              // 定时器中断触发,P3输出口异或,电平翻转

{                 

    P3OUT ^= 0x04;

}


二、利用定时器定时功能,实现定时器多个溢出,对应产生多个中断,实现 P3.0 输出

#include "cc430x613x.h"

 

void main()

{

    WDTCTL = WDTPW + WDTHOLD;               // 停止看门狗定时器

    P3DIR |= 0x04;                          // P3口初始化,设置为输出模式

    

    TA0CCR0 = 32768;                        // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1s

    TA0CCTL0 = CCIE;                        // TA0CCR0捕获/比较中断寄存器中断使能

    

    TA0CCR1 = 3276;                         // 定义中断溢出周期100ms

    TA0CCTL1 = CCIE;                        // TA0CCR0捕获/比较中断寄存器中断使能

    

    TA0CTL = TASSEL_1 + MC_1 + TACLR;       // TASSEL_1,ACLK时钟源  MC_1,增计数模式

    

    _BIS_SR(LPM3_bits + GIE);               // 进入LPM3低功耗模式,开启总中断

}

 

#pragma vector = TIMER0_A0_VECTOR

__interrupt void Timer_A(void)              // 1s溢出中断

{                 

    P3OUT = ~0x04;

}

 

#pragma vector = TIMER0_A1_VECTOR

__interrupt void Timer_A1(void)             // 100ms溢出中断

{

    switch(TA0IV)

    {

        case 2:P3OUT = 0x04;break;

        case 4:break;

        case 10:break;

    }

}


关键字:单片机  MSP430  Timer_A  定时器中断 引用地址:单片机MSP430 - Timer_A 定时器中断程序

上一篇:单片机MSP430 - 定时器Timer_A
下一篇:MSP430-WDT

推荐阅读最新更新时间:2024-11-08 16:21

单片机汇编语言的点阵显示源码
既有动态显示又有静态显示,没有电原理图,但是很简单,行扫描,上下滚动,单片机型号STC15F2K60S2(打开文件后就可以看到) 单片机源程序如下: /* 静态 DL BIT P1.0;串行输入列信号(数据信号)(低有效)并行输出 DH BIT P1.1;串行输入行信号(行扫描信号)(高有效)并行输出 STR BIT P1.2;RCLK 三态输出锁存器的时钟输入 CLK BIT P1.3;SRCLK 移位寄存器的时钟输入 FOE BIT P1.4;/OE 输出允许控制 ROWH EQU
[单片机]
解读51单片机LED系统电路
LED 旋转显示器时基于视觉暂留原理,开发的一种旋转式LED 显示屏。其在具有一定转速地载体上安装16 个LED 发光器件,各LED 发光管等间距排位一条直线,随着旋转速度的加快,在计算机软件精确的时序控制下,不断扫描出预设的文字,图案等。使用一个光耦(U 型槽的红外对管)作为定位传感器,当旋转一周时,挡光板遮挡光源,光敏三极管的集电极输出高电平,当离开挡光板时,集电极再次输出低电平,从而给单片机一个下降沿的跳变型号,产生一个中断,从而更新显示。供电部分,因为整个装置是在不停的高速旋转当中,所以我们做了一个简单的电刷装置,把220V 的交流电通过变压器变成12V 的交流电,再由桥式整流电路,和滤波电路,变为平滑的直流电,最后通过7
[电源管理]
解读51<font color='red'>单片机</font>LED系统电路
51单片机学习之陆 —— 1.3 流水灯的花样玩法
上一次我们点亮了一个流水灯 LED1,其实仅仅点亮一个流水灯还是有些单调的。 这一次让我们试着尝试些别的花样 1 多个流水灯的点亮 a 打开keil 将原来的c文件关掉 左边的也删掉,因为我并不像重新创建工程 按照昨天的方法新建一个c文件,并添加到工程中(以后也这样,所以请有自己的命名规则,否则都分不清了,而我这里命名的是LED1.1) b 将代码写上。(假如你要点亮1357这几个流水灯) #include reg52.h sbit LED1 = P1^0; sbit LED3 = P1^2; sbit LED5 = P1^4; sbit LED7 = P1^6; void main() { LED1 = 0
[单片机]
51<font color='red'>单片机</font>学习之陆 —— 1.3 流水灯的花样玩法
单片机存储器类型分析
data-----指单片机内部自带RAM空间 xdata----指单片机外扩RAM空间 pdata----指单片机外扩RAM空间中的页面空间0x00~0xff(256字节/页),页地址由P2口决定。 bit--------指RAM中位寻址空间0x20~0x7f地址单元。 code-----指内部ROM或外扩FLASH空间。
[单片机]
8051单片机TLC1549数据采集程序源代码
#i nclude stdio.h #i nclude REGX51.H #i nclude iic.h #define uchar unsigned char #define uint unsigned int uint Timer_Pro_Flag=0;//0为显示处理,1为时序采集处理 sbit TEST_CAP_VOL_CRLT=P1^0;//用于控制外部继电器 sbit PWM_Pin=P3^7;//PWM输出 sbit IrDA_in_Pin=P1^0;//红外脉冲输入检测脚 bit PWMFlag=0; uchar OLD_TH0,OLD_TL0; #define MAXCMD_LENGTH 7 #d
[单片机]
51单片机入门 - 串口通信实验(模拟串口通信/多机通信实例)
RS232串口应用实例 设计要求: 通过串口发送接收数据(串口工作方式1) 实现思路: 定时器设置 串口设置 工作方式 波特率 开启定时/计数器 串口执行 接收数据 发送数据 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 实现代码: 1 #include reg51.h 2 main() 3 { 4 TMOD = 0x20; 5 SM0
[单片机]
51<font color='red'>单片机</font>入门 - 串口通信实验(模拟串口通信/多机通信实例)
MSP430F5438A支持基于COAP协议的通讯方案验证
Demo的整体目标:支持基于COAP协议的通讯方案验证; 经过多种比对及现有资源的考虑,最终选定为如下方案,都已存在开源代码,只要做简单的适配应该就可以进行上板调试。 硬件方案:MSP430F5438A + 操作系统:ucos + 物联网套件:阿里IoT-SDK_V2.0 + IDE:IAR 由于阿里IoT-SDK_V2.0基于linux系统进行编程(尚未支持其他平台),编译器为GCC,所以在移植的过程中遇到了许多问题: 1、配置头文件目录:IAR的环境中不使用makefile,因此头文件目录需要在IAR中进行单独配置,具体的配置方法如下: a) 右键工程名称,选中Options... b) 找到C/C++ comp
[单片机]
利用德州仪器MSPM0系列微控制器实现高效电机控制
在快速发展的电子技术领域,电机控制作为一项关键技术,对提高能效和优化系统性能起着至关重要的作用。 在刚刚结束的 2024 年的上海慕尼黑电子展上,德州仪器 MSP HSM 应用经理 Johnson He 带来了一场主题为“Arm Cortex-M0+ MCU:精准满足客户需求的电机控制方案”的精彩演讲,深入探讨了如何利用德州仪器的 MSPM0 系列微控制器来实现高效、精准的电机控制。 电机驱动技术的无处不在 电机驱动技术的应用已经渗透到我们日常生活的方方面面,其应用场景之广泛,几乎触及了每一个角落。从小巧精致的电动牙刷和美容仪器,到电动工具、电动自行车、电动汽车、工业机器人等诸多产品,电机驱动技术以其高效、灵活和可靠的特点
[嵌入式]
利用德州仪器MSPM0系列<font color='red'>微控制器</font>实现高效电机控制
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved