|
引用:
请教大家一个问题,我想用timer_a 的ccr0做一个定时中断,还想timer_a 的ccr1做一个1赫兹的脉冲方波,可就是不行,求教大家
#include "stdint.h"
#include <msp430x42x0.h>
unsig...
|
|
///////////////////////////////////////////////////////////////////////////////////
这样修正一下吧:
#include "stdint.h"
#include <msp430x42x0.h>
unsigned int wDelay = 0;
// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1(void)
{
switch( TAIV )
{
//case 2: P1OUT ^= 0x01; // 想用CCR1但是没输出
case 2: break;
case 4: break; // CCR2 not used
///////case 10: P1OUT ^= 0x01; // overflow
break;
}
}
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A( void)
{
wDelay++;
CCR0 += 1500;
P1OUT ^= 0x01;}//测量这
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
TACTL = TASSEL1 + TACLR + TAIE ;//时钟源SMCLK,清除TAR
CCTL0 = CCIE;//CCR0中断使能
CCR0 = 10000;//这时CCR0的值为演示值,依实际修正,但CCR0应大于CCR1(增计数模式)
CCR1= 5000;//CCR1应小于CCR0
CCTL1 = OUTMOD_2;
TACTL |= MC1;//Timer_a增计数模式
_EINT();//使能系统中断
P1DIR |= 0x01;
for (;;)
{
_NOP();
}
} |
|