打印

G2553 TimerA 的时钟频率?

[复制链接]
690|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 好名儿狗起了 于 2015-8-28 21:23 编辑

我需要一个0.5S一次的中断,写了个小程序,用CCR0每0.5秒触发一次中断,结果PAD上的小灯并不是隔1S亮一次。。比一秒长多了,这是为什么??
请老师们解答下。
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;         
   P1DIR |=BIT0;
   TACTL = TASSEL_1+MC_1;                      //选择ACLK 时钟源32768HZ,增计数模数            
   TACCR0 = 16384;                                    //约0.5s                  
   TACCTL0 = CCIE ;
   _EINT();
   while(1);
   }
#pragmaector v=TIMER0_A0_VECTOR
  __interrupt void TimerA0(void)
  {P1OUT^=BIT0;
     }
PS:主频1MHZ。

相关帖子

沙发
好名儿狗起了|  楼主 | 2015-8-27 17:45 | 只看该作者
中断程序打字的时候写错了 #pragma vector ,不影响问题

使用特权

评论回复
板凳
好名儿狗起了|  楼主 | 2015-8-27 19:19 | 只看该作者
难道沉没了。。这个应该很简单的吧

使用特权

评论回复
地板
侣行天下| | 2015-8-28 08:42 | 只看该作者
不知道用这种方法测试合理吗?

使用特权

评论回复
5
dirtwillfly| | 2015-8-28 09:26 | 只看该作者
没必要那么麻烦,ACLK可以通过io输出的

使用特权

评论回复
6
好名儿狗起了|  楼主 | 2015-8-28 16:17 | 只看该作者
dirtwillfly 发表于 2015-8-28 09:26
没必要那么麻烦,ACLK可以通过io输出的

其实我想要的是0.5秒一次的中断,ACLK我测过,没有问题,不过中断的间隔就不对了。

使用特权

评论回复
7
dirtwillfly| | 2015-8-28 16:58 | 只看该作者
好名儿狗起了 发表于 2015-8-28 16:17
其实我想要的是0.5秒一次的中断,ACLK我测过,没有问题,不过中断的间隔就不对了。 ...

早说啊。

#include <msp430g2553.h> 
void main (void)
{  
WDTCTL = WDTPW + WDTHOLD;  
TA1CTL|=TASSEL_2+TACLR+MC_3+ID_3;//采取内部时钟源1.04M,八分频,增减计数模式

TA1CCTL0=CCIE;//启用定时器中断
TA1CCR0=65535;//计数1S
P1DIR|=BIT0;
_EINT();
//LPM4;

while(1);
』  

#pragma vector=TIMER1_A0_VECTOR

__interrupt void ta10_isr(void)
{  
P1OUT^=BIT0;
}  

使用特权

评论回复
8
好名儿狗起了|  楼主 | 2015-8-28 21:24 | 只看该作者

很谢谢老师的指导,能讲解下为什么我的程序得到的不是0.5秒一次的中断?

使用特权

评论回复
9
quray1985| | 2015-8-30 20:25 | 只看该作者
不太懂那位大侠的程序

使用特权

评论回复
10
风的样子| | 2015-8-31 20:38 | 只看该作者
不是太懂这方面的知识,帮楼主顶一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝