找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1259|回复: 2
打印 上一主题 下一主题
收起左侧

MSP430FR6989定时器无法跳中断的问题

[复制链接]
跳转到指定楼层
楼主
TA0R寄存器正常计数,TAIFG标志位也从0至1,但是中断跳不进去
  1. #include "Includes.h"
  2. #define U8 unsigned char
  3. #define U16 unsigned int
  4. void RoughDelay(U16 i){
  5.   while(i--);
  6. }
  7. void main( void )
  8. {
  9.   // Stop watchdog timer to prevent time out reset
  10.   WDTCTL = WDTPW + WDTHOLD;
  11.   //0000 0001b = 0x01
  12.   //0000 0000b = 0x00
  13.   //1111 1110b = 0xfe
  14.   PM5CTL0 &= ~LOCKLPM5;
  15.   led_init();
  16.   Timer_A_init();
  17.   LED1_ON;
  18.   LED2_OFF;
  19.   while(1){
  20.     RoughDelay(60000);
  21.     LED1_TURN;
  22.   }
  23. }
  24. #pragma vector = TIMER0_A0_VECTOR
  25. __interrupt void ISR_TimerA_CCR0 (void){
  26.   TA0CTL_bit.TAIFG   = 0;
  27.   TA0CCTL0_bit.CCIFG = 0;
  28.   LED2_TURN;
  29. }
复制代码
  1. void Timer_A_init(void){
  2.   TA0CCR0            = 0x8000;
  3.   TA0R               = 0;
  4.   TA0CTL_bit.TASSEL1 = 0;
  5.   TA0CTL_bit.TASSEL0 = 1;
  6.   TA0CTL_bit.ID1     = 0;
  7.   TA0CTL_bit.ID0     = 0;
  8.   TA0CTL_bit.MC1     = 0;
  9.   TA0CTL_bit.MC0     = 1;
  10.   TA0CTL_bit.TAIE    = 1;
  11.   TA0CTL_bit.TAIFG   = 0;
  12.   TA0CCTL0_bit.CCIFG = 0;
  13.   TA0CCTL0_bit.CCIE  = 0;
  14. }
复制代码
图片是是调试时一个片段的寄存器数据。救救孩子吧,弄了一早上没找出原因。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:804115 发表于 2020-7-29 14:36 | 只看该作者
全局中断要打开:
__enable_interrupt();   //Enable all interrupt  
或者
_EINT(); //开中断
回复

使用道具 举报

板凳
ID:497627 发表于 2020-8-4 21:07 | 只看该作者
1692483014 发表于 2020-7-29 14:36
全局中断要打开:
__enable_interrupt();   //Enable all interrupt  
或者

解决了,开全中断我包含的头文件不够,所以有的宏用不了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表