📄 p160_s1.c
字号:
//书本配套代码参考P151_S1_F44X.C文件
//修改实例如下
//Timer_A增计数模式举例
//例:设ACLK=TACLK=32768Hz,MCLK=SMCLK=8MHz,周期性取反P5.1,产生频率为8MHz/40000/2=100Hz的方波。P160
//示例代码如下:
/*
将8路的发光二极管电路板接到P5口上观看运行效果
*/
/*提示!
根据主板上的单片机是MSP430F149,所以包含头文件改为msp430x14x.h。
*/
#include <msp430x14x.h>
void main(void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // 停止看门狗
BCSCTL1 &= ~XT2OFF; // XT2有效
do
{
IFG1 &= ~OFIFG; //清除振荡器失效标志
for (i = 0xFF; i > 0; i--); //稳定时间
}
while ((IFG1 & OFIFG)); //如果振荡器失效标志存在
BCSCTL2 = 0X88; // MCLK = SMCLK = XT2 (safe)
CCTL0 = CCIE;
CCR0 = 60000; //方波频率:8000000/40000/2=100
P5DIR |= 0x02;
TACTL |= TASSEL1 + MC0; //SMCLK , Timer_a增计数模式
_EINT();
for(;;)
{
_NOP();
}
}
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
P5OUT ^= 0x02; //取反P5.1
//由于频率比较高,所以感觉不到LED在闪烁
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -