参照《MSP430单片机原理与应用——msp430F5xx/6xx系列单片机入门、提高与开发》一书中定时器部分介绍,利用TA1定时器,工作在捕获模式,上升沿触发捕获,参考时钟SMCLK,通过中断读取定时器捕获值,将ACLK通过P1.0输出,与P2.0相连。P2.0配置为定时器捕获输入。
#include <msp430.h>
int i=0;
int Cycle[2];
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR|=BIT0;
P1SEL|=BIT0; P1.0选择ACLK输出;
P2DIR&=~BIT0;
P2SEL|=BIT0; P2.0与P1.0相连,配置为定时器捕获输入;
TA1CTL=TASSEL_2+MC_2+TACLR; TA1主时钟SMCLK,连续计数模式,清除TAR;
TA1CCTL1=CM0+SCS+CAP+CCIE; CCR1工作于捕获模式,同步捕获,上升沿触发,中断使能;
_ _BIS_SR_register(LPM0_bits+GIE); 进入LPM0并使能全局中断;
}
#pragma vector=TIMER1_A1_VECTOR 中断程序;
_ _interrupt void TIMER0_A1_ISR(void)
{
Cycle[i]=TA1CCR1;
i++;
if(i=2) i=0;
TA1CCTL1 &=~CCIFG;
LPM0_EXIT;
}
此帖出自
小平头技术问答
示波器检测到P1.0输出32kHz,是对的。
一周热门 更多>