欧美极品高清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