想请问高手,这些红叉叉是甚麽意思?
我是用板上大神提供的IAR6.3破解版,
因为刚开始研究单片机而已,以前也没用过这软体,
范例程式也是照书上打的
"当外部电压小于0.5vcc时,led灯闪烁提示用户电压过低"
(16位元单片机原理及应用 基于msp430) 人民邮电出版
小弟先感激高手们了!希望这问题不会让我这单片机新手卡关
有问题的msp430x16x.h档已上传
书上范例为:
#include "io430.h"
#include
#define uint unsigned int
#define uchar unsigned char
#define LED BIT1
#define delaynop {_asm nop;}
uchar flag = 0;
void int_clk()
{
uchar i;
BCSCTL1 &= ~XT2OFF;//打开振盪器
BCSCTL2 |= SELM1+SELS;//MCLK 8M AND SMCLK 1M
do
{
IFG1 &= ~OFIFG;//清除震盪错误标志
for(i=0;i<100;i++)
_NOP();//延迟等待
}
while ((IFG1 & OFIFG) !=0);//如果标志为1,继续等待
IFG1 &= ~OFIFG;
}
void int_COMPARATORA()
{
P2SEL |= 0X14;//P2.2 P2.4分别做为比较器的输出和输入
P2DIR |= 0X04;//设置P2.2为输出
CACTL1 &= ~CAEX;//输出取反
CACTL1 |= CARSEL+CAREF1+CAON+CAIE+CAIES;
//选择参考电压正接端,CA0接负端,允许中断,下降沿触发中断,参考电压为0.5VCC
CACTL2 |= CAF+P2CA0;
//使能输出滤波器,CA0作为比较输入功能
}
#pragma vector = COMPARATORA_VECTOR
_interrupt void COMPARATORA(void)
{
flag = 1;//置中断标志为1
}
void dely();//软件延迟
{
uint i,j;
for(i=0;i<=100;i++)
for(j=0;j<=50;j++)
{
delaynop;
delaynop;
}
}
voud main( void )
{
uint k;
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
int_clk();
delay();
int_COMPARATORA();
_EINT();
while(1)
{
while(flag)
{
P1DIR |= LED;
for(k=0;k<10;k++)
{
P1OUT &= ~LED;//P1.1输出低电位,LED灯亮
delay();//调用软件延迟子程序
p1out |= led;//P1.1输出高电位,LED灯灭
}
flag=0;//标志清零
}
}
}