MSP430F249_TimerA定时器

发布者:国宝集团最新更新时间:2017-11-25 来源: eefocus关键字:MSP430F249  TimerA  定时器 手机看文章 扫描二维码
随时随地手机看文章

/******************************************************************
**                                                       
**  File : TimerA.c     | Timer Interrupt |                                    
**  Version : 1.0     
** Description: TimerA Interrupt                                                                          
**  Author : LightWu                              
**  Date : 2013-4-16                                                       
**                                                   
*******************************************************************/


#include "MSP430X24X.h"


int Count;


void main(void)
{
        // Stop watchdog timer to prevent time out reset
        WDTCTL = WDTPW + WDTHOLD;       //关狗
  
        P4DIR = BIT0|BIT1|BIT2|BIT3;    //设置为输出
        P4SEL = 0;
        
        P1IE |= 0x08;                             // P1.3 interrupt enabled
        P1IES |= 0x08;                            // P1.3 Hi/lo edge
        P1IFG &= ~0x08;                           // P1.3 IFG cleared


        //__bis_SR_register(LPM4_bits + GIE);       // Enter LPM4 w/interrupt
        
        CCTL0 = CCIE;                             // CCR0 interrupt enabled
        CCR0 = 10;
        TACTL = TASSEL_2 + MC_2;                  // SMCLK, contmode


        _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
        
        while(1)
        {
              if( 10 < Count )
              {
                  Count = 0;
                  
                  P4OUT ^= 0x0F;              //电平翻转
              }
        }
        
}


// Port 1 interrupt service routine
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
    P4OUT ^= 0x0F;              //电平翻转
    
    P1IFG &= ~0x08;             // P1.3 IFG cleared,注意清标志位,否则会一直进入中断
}


// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
    //P4OUT ^= 0x0F;              //电平翻转
    
    Count++;
    if( 10 < Count )
    {
         __bic_SR_register_on_exit(LPM0_bits);        // Exit LPM0


    }
 
}

关键字:MSP430F249  TimerA  定时器 引用地址:MSP430F249_TimerA定时器

上一篇:MSP430F249硬件I2C查询法读写AT24C02
下一篇:MSP430F249外部中断P1.3口

推荐阅读最新更新时间:2024-03-16 15:46

MSP430F5529 多通道ADC定时器触发+DMA传输
竞赛之前学习了一下从没有使用过的MSP430单片机,使用的是MSP430F5529的demo板,这块板子应该是MSP430中比较流行的一块了。使用这块板子实现了一个双通道ADC的定时器触发DMA传输,这里记录一下给别人一点参考,同时也为以后需要用到的时候提供笔记。废话不多说直接上源码,代码如下。 #include msp430.h #include stdint.h int data_buf0 ; int data_buf1 ; /** * main.c */ int main(void) { unsigned int i; WDTCTL = WDTPW | WDTHOLD; // stop watchdog
[单片机]
MSP430F5529 多通道ADC<font color='red'>定时器</font>触发+DMA传输
STM32定时器----Toggle模式实现2路pwm移相
原理如下: 以下代码实现了利用TIM3的CH3以及CH4输出两路移相的PWM,移相角度为225度。 void TIM3_PWMShiftInit(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; GPIO_InitTypeDef GPIO_InitStruct; TIM_OCInitTypeDef TIM_OCInitStruct; /**********************TIM3 GPIO配置*****************************/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,
[单片机]
STM3的TIM4定时器功能设置
一、初始化过程 /*********************************************************************** 利用TIM4定时器作为计时,每个0.1秒处理一次数据 计算周期的公式为: psc/72*period/1000000 (单位为秒) ************************************************************************/ void TIM2_Config(void) { TIM_TimeBaseInitTypeDef TIM_timeBaseStucture; TIM_OCInitTypeDef T
[单片机]
单片机学习札记5---定时器和中断配置
这一节,解释一下上一节的那个程序,用到什么,我们就学什么。 ①新建一个程序,首先要包含头文件,比如很多人用STC89C52,因为是标准的51内核,要写 #include reg51.h 就可以了,但是STC15W系列不是标准的51内核,他加了很多的功能进来,加了很多的特殊功能寄存器(SFR),所以要添加一个自己新建的头文件,stc15w.h ,这个是官方提供的,在下载客户端栏目里头,找头文件,直接复制添加进来就是了,如下图: 所谓的特殊功能寄存器,简单点就是8个开关,8个开关的不同组合开关状态会实现不同的功能,有些外设在使用前必须要设置,有的寄存器必须8个位一起操作,这叫不可位寻址,有的可以单独操作,比如EA = 1;这个
[单片机]
单片机学习札记5---<font color='red'>定时器</font>和中断配置
STM8SF903K3T6定时器1输入捕获
简介 最近接了个转速仪的项目,原理是计频率。最开始是用外部中断,然后根据定时器定时一秒来取值,转速是rpm,所以还要乘以60. 因为需要反映快所以后来改用定时捕捉。采用TIM1的通道一PC1来捕捉。 代码流程 1.开启系统时钟(可以选择内部或者外部) void CLK_Configuration(void) { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //HSI = 16M (1分频) } 2.开启定时器设置,开启溢出中断,是因为在捕获两个信号时,时间大于定时器最大计数时间,算出溢出时间。 void TIM1_CAP_Configuration(void)
[单片机]
STM8S103定时器1,定时器2多路PWM波输出
一、时钟配置 1、STM8S的4种时钟源可用做主时钟: ● 1-24MHz高速外部晶体振荡器(HSE) ● 最大24MHz高速外部时钟信号(HSE user-ext) ● 16MHz高速内部RC振荡器(HSI) ● 128KHz低速内部RC(LSI) STM8默认时钟源为16MHz高速内部RC振荡器(HSI) 对 CLK_CKDIVR设置可以设置时钟为HSI的分频 如 CLK_CKDIVR|= (uint8_t)0x00;/*设置时钟为内部16M高速时钟*/ 2分频为 CLK_CKDIVR=0x08;4分频为 CLK_CKDIVR=0x10;8分频为 CLK_CKDIVR=0x18; 二、定时器1设置
[单片机]
STM8S103<font color='red'>定时器</font>1,<font color='red'>定时器</font>2多路PWM波输出
STM32F103ZET6 用定时器级联方式输出特定数目的PWM
STM32F103ZET6里共有8个定时器,其中高级定时器有TIM1-TIM5、TIM8,共6个。 这里需要使用定时器的级联功能,ST的RM0008 REV12的P388和P399页上有说明对于特定的定时器,怎么去选择级联功能,参见表86。 我这里输出PWM的定时器是TIM2,空闲的定时器是TIM3。以TIM2为主定时器,TIM3为从定时器对TIM2的输出脉冲数进行计数。 查表可知,TIM3为从定时器选择TIM2为触发源,需要配置TS=001,即选择ITR1。 实现通过定时器控制输出PWM个数的功能,可以有如下一种配置方式: void TIM2_Master__TIM3_Slave_Configuration(u32 Puls
[单片机]
嵌入式学习笔记10——51单片机之中断定时器中断
1. CPU时序的有关知识 (1)振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)。 (2)状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。 (3)机器周期:1个机器周期含6个状态周期,12个振荡周期(使用计时器时,每隔一个机器周期计时器加1)。 (4)指令周期:完成1条指令所占用的全部时间,它以机器周期为单位。 2. 学习定时器前须明白: (1)51单片机有2组定时器/计数器(52单片机有三组),可定时或计数。 (2)定时器/计数器和单片机的CPU是相互独立的,定时器/计数器工作的过程是自动完成的,不需要CPU的参与。 (3)51单片机中的定时器/计
[单片机]
嵌入式学习笔记10——51单片机之中断<font color='red'>定时器</font>中断
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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