zhuyi25762 发表于 2010-12-1 11:11:11

对430 定时器不理解,求解?

刚入手430,对定时器诸多不解

增计数模式好理解 计数到TCCR0,CCIFG置位,之后+1 回到0 TAIFG置位,进入
#pragma vector=TIMERA0_VECTOR
         __interrupt void Timer_A0 (void)

但是在边续模式下,不理解,,,计数从0----FFFF,然后+1 回到0  TAIFG置位,,,也这就是这只要时钟固定了,这个定时时间是不变的,,,,看示例程序为什么还要设置TCCR0,又有什么意义呢..0 计数到 TCCRO,只是产生一个比较中断,又不能进入定时中断,,,,不明白这个TCCR0是什么意思在这
#include <msp430x20x3.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;               // Stop WDT
P1DIR |= 0x01;                            // P1.0 output
CCTL0 = CCIE;                           // CCR0 interrupt enabled
CCR0 = 50000;
TACTL = TASSEL_2 + MC_2;                  // SMCLK,
_BIS_SR(LPM0_bits + GIE);               // Enter LPM0 w/ interrupt
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x01;                            // Toggle P1.0
CCR0 += 50000;                            // Add Offset to CCR0 ////////////
}



还有下面手册也不理解
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_601524ZMR8F7.jpg
(原文件名:QQ截图未命名.jpg)
在一个0---FFFF内,怎么出现了二个TCCR0呢 如果按上面程序理解,要改变TCCR0也得在 计满FFFF后进入中断才能再改吧

biansf2001 发表于 2010-12-1 11:35:21

脉宽调制用

xuanyusyj 发表于 2010-12-1 11:49:05

TAR是不断加一计数的,到达0xFFFF溢出时产生TAV中断
当TAR == TCCRO时,产生CCR0中断
当TAR == TCCR1时,产生CCR1中断

zhuyi25762 发表于 2010-12-1 12:06:12

我只当普通定时器用,是不是只有用模式1,增计数模式

avrgogo 发表于 2010-12-1 12:17:27

用增计数就可以了,到CCRO产生中断一次

tiaomiaodu 发表于 2010-12-6 01:26:47

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602612OOMXH0.GIF
(原文件名:11.GIF)

我也不太理解这个的。用户手册中说TAxCCRn写入数值怎么在中断函数中写入的呢。tar和TAxCCRn有什么关系,我觉得如果只需要中断的话,tar就可以实现的了

ccmj4708 发表于 2011-6-9 15:14:22

mark
页: [1]
查看完整版本: 对430 定时器不理解,求解?