欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
問一個關(guān)于msp430f149關(guān)于中斷的問題
[打印本頁]
作者:
mxh123456
時間:
2018-2-4 15:57
標題:
問一個關(guān)于msp430f149關(guān)于中斷的問題
這兩天玩一下這個4線串口屏,想把溫度,時間和電壓采樣的數(shù)據(jù)發(fā)送到上面,但是溫度和時間(ds1302)的數(shù)據(jù)發(fā)送到上面去沒什么問題,但是當(dāng)我把149自帶的ADC采樣電壓數(shù)據(jù)發(fā)送到上面時,其它的數(shù)據(jù)就不穩(wěn)定了,我不知道是不是時間上有什么沖突,大家?guī)兔φ乙幌略颍∠旅媸侵鞒绦?br />
//*************************************************************************
// ADC中斷服務(wù)程序
//*************************************************************************
#pragma vector = ADC_VECTOR //中斷名稱表示中斷的來源
__interrupt void ADC12ISR(void)
{
while((ADC12CTL1&0x01)==1); //如果ADC忙,則等待,否則讀取ADC轉(zhuǎn)換數(shù)值,如果為0則執(zhí)行下面的程序
TEMP = ADC12MEM0;//讀取ADC轉(zhuǎn)換值,ADC12MEM0為通道存儲寄存器,這是模擬量存儲數(shù)據(jù)的地方,設(shè)置好相關(guān)的配置之后,可以直接讀取即可
sprintf((char*)buf,"main.t16.txt=\"%d\"",TEMP);
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
Flag=1;
}
/*********************主函數(shù)*******************/
void main()
{
uint i=0;
WDT_Init();
UART_Init();
Clock_Init();
DS18B20_Reset();
delay_ms(100 );
Close_LED();
DS1302_init();
delay_ms(10);
DS1302_write_time(); //ds1302時間數(shù)據(jù)初始值設(shè)定
Flag=1;
while(1)
{
//delay_ms(100);//刷新速度
DS1302_read_time();//ds1302讀取時間函數(shù)
ds1820_start();
ds1820_read_temp();//下面sprintf的用法是,把j打印成一個 字符串保存在(char*)buf中
switch(i++)//一開始發(fā)送多組數(shù)據(jù)不能發(fā),現(xiàn)在通過一個switch通過標志位來可以發(fā)了
{
case 0:sprintf((char*)buf,"main.t2.txt=\"%.1f\"",temp_value); //注意這里面要發(fā)送數(shù)據(jù)到指定界面時,只需要寫明界面名字就行了
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 1:sprintf((char*)buf,"main.t1.txt=\"%x%x\"",time_buf[0],time_buf[1]);//注意這里發(fā)送兩個數(shù)據(jù)所以需要兩個%x
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 2:sprintf((char*)buf,"main.t5.txt=\"%x\"",time_buf[2]);
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 3:sprintf((char*)buf,"main.t7.txt=\"%x\"",time_buf[3]);
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 4:sprintf((char*)buf,"main.t0.txt=\"%x\"",time_buf[4]);
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 5:sprintf((char*)buf,"main.t9.txt=\"%x\"",time_buf[5]);
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 6:sprintf((char*)buf,"main.t10.txt=\"%x\"",time_buf[6]);
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 7:sprintf((char*)buf,"main.t12.txt=\"%x\"",time_buf[7]);
Print_Str1((char*)buf);
HMISendstop();//這是串口屏接收指令結(jié)束符
case 8:if(Flag==1)
{
_EINT();
ADC12CTL0 |= ADC12SC; //開啟轉(zhuǎn)換
ADC12CTL0 &= ~ADC12SC; //清零,停止轉(zhuǎn)換
_DINT();
Flag=0;
}
}
_DINT();
if(i>=8)
i=0;
}
}
作者:
mxh123456
時間:
2018-2-4 15:59
這里主要看case 8里面的程序,就是case 8這里顯示溫度數(shù)據(jù)就有問題,中斷不知道怎么改?
作者:
mxh123456
時間:
2018-2-4 16:04
這里主要是case 8有問題,其它的都是ok,就是中斷用了之后就不行了
作者:
17089306679
時間:
2018-2-4 17:26
case 8溫度數(shù)據(jù)有問題
作者:
mxh123456
時間:
2018-2-4 20:18
case 8讀取的是電壓數(shù)據(jù),用的是adc中斷
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1