F2274与F2312的外部32K有源时钟输入问题:
之前一直用F2274+外部32K有源时钟,之后设置1秒定时中断,做了n多板都工作正常;
由于成本原因换了便宜点的F2312,对比了一下,F2312与F2274的时钟输入管脚都是P2.6,ACLK输出管脚都是P2.0;
时钟初始化的代码根本不用修改就能编译过去;但是在F2274上很准确的1秒定时中断在F2312上跑就慢了1/4左右;
于是测试ACLK管脚的时钟输出,发现F2312根本没有输出任何时钟,而F2274上相同的管脚有32K时钟输出;
代码如下,我实在看不出什么问题,请前辈们指点一下,小弟感谢!
void SetLogicACLK()
{
BCSCTL3= LFXT1S_3; //选择用外部数字32K时钟源来接到ACLK
//P2.0/ACLK/A0/OA0I0: 要P2.0输出ACLK,P2DIR.x=1,P2SEL.x=1,ADC10AE0.y=0
P2DIR|=BIT0;
P2SEL|=BIT0;
ADC10AE0=0;
CCR0 =32768; //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,相当于1s
TACTL = TASSEL0+MC0+ TACLR; //设置定时器A选择辅助时钟ACLK,MC0=0x0010,使计数模式为增计数 TASSEL0与TASSEL_0是不一样的,不要搞错啊!
TACCTL0 |=CCIE;//CCTL0 = CCIE; //设置捕获/比较控制寄存器,CCIE=0x0010,使能捕获比较中断
}
此帖出自
小平头技术问答
一周热门 更多>