?? main.c
字號:
#include <msp430x14x.h>
#define uint unsigned int
#define uchar unsigned char
#define beef BIT6
uchar flag=0;
void int_clk()
{
uchar i;
BCSCTL1&=~XT2OFF; //打開XT振蕩器
BCSCTL2|=SELM1+SELS;//MCLK 8M and SMCLK 1M
do
{
IFG1 &= ~OFIFG; //清除振蕩錯誤標(biāo)志
for(i = 0; i < 100; i++)
_NOP(); //延時等待
}
while ((IFG1 & OFIFG) != 0); //如果標(biāo)志為1繼續(xù)循環(huán)等待
IFG1&=~OFIFG;
}
void int_COMPARATORA()
{
P2SEL|=0X14;//P22、P24分別作為比較器的輸出和輸入
P2DIR|=0X04;//設(shè)置P22作為輸出
CACTL1&=~CAEX;//輸出取反
CACTL1|=CARSEL+CAREF0+CAON+CAIE+CAIES;//選擇參考電壓接負(fù)端、CA1接正端,允許中斷下降沿觸發(fā)中斷,參考電壓為0。25倍VCC
CACTL2|=CAF+P2CA1;//使能輸出濾波器,CA1作為比較輸入功能
}
#pragma vector=COMPARATORA_VECTOR
__interrupt void COMPARATORA(void) //中斷服務(wù)程序
{
flag=1; //置中斷標(biāo)志為1
}
void delay() //軟件延時
{
uint i,j;
for(i=0;i<=100;i++)
{
for(j=0;j<100;j++)
;
}
}
void main()
{
WDTCTL=WDTPW+WDTHOLD;//關(guān)看門狗
int_clk(); //初始化時鐘
delay(); //調(diào)用軟件延時子程序
int_COMPARATORA();//初始化比較器
_EINT();
while(1)
{
while(flag)
{
P4DIR|=beef;
P4OUT&=~beef; //P4.6輸出低電平
delay(); //調(diào)用軟件延時子程序
P4OUT|=beef; //P4.6輸出高電平
flag=0; //標(biāo)志清零
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -