欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
電壓表自動換檔怎么才能實現(xiàn)第一次測量時從最高檔開始判斷然后根據(jù)測量值選合適的量程
[打印本頁]
作者:
@GS
時間:
2024-4-17 14:50
標題:
電壓表自動換檔怎么才能實現(xiàn)第一次測量時從最高檔開始判斷然后根據(jù)測量值選合適的量程
void main(void)
{
LCD_ON;
P0M0 = 0x80; P0M1 = 0;
P1M0 = 0; P1M1 = 0;
P2M0 = 0; P2M1 = 0;
P3M0 = 0; P3M1 = 0;
P4M0 = 0x20; P4M1 = 0;
P5M0 = 0; P5M1 = 0;
Delay_ms(100);
Zero_Coeff_Init();
lcd_system_reset();
ads_initial();
Delay_ms(100);
string_write(0, 0, " Welcome to use ");
string_write(0, 1, " ");
Delay_ms(3500);
string_write(0, 0, "Range:10mV ");
string_write(0, 1, "Volt:0.000mVDC ");
ads_convert();
while (1)
{
Delay_ms(100);
//熄屏省電判斷
if(++power_saving_timer > 299){//30秒熄屏
LCD_OFF;
}
//定時數(shù)據(jù)采集
if(++data_acqui_timer > 1){//100ms采集一次
if(current_ch < 4){//自動換擋
if((volt_val > 9900)&&(current_ch < 3)){
current_ch++;
Input_CH_Select();
}else if((volt_val < 10)&&(current_ch > 1)){
current_ch--;//
Input_CH_Select();
}
}
if(current_ch < 4||current_ch < 7){//自動換擋
if((volt_val > 9000)&&(current_ch < 6)){//
current_ch++;
Input_CH_Select();
}else if((volt_val < 100)&&(current_ch > 4)){//5
current_ch--;//
Input_CH_Select();
}
else if (volt_val < 20){
current_ch=6;
Input_CH_Select();
}
}
if(current_ch==4){
P07L=0;
Delay_ms(30);
}
if(current_ch==5){
P07L=1;
Delay_ms(30);
}
data_acqui_timer = 0;
//等待AD采集結束
while(1){
ad_val = ads_result();
if((ads_config_reg & 0x80) == 0)break;
}
volt_val = (ad_val - zero_val[current_ch - 1].sint_val)/coeff[current_ch - 1].float_val;
if(volt_val > 9999)volt_val = 9999;
if(volt_val < 0)volt_val = volt_val * -1;
Disp_Volt_Val();
ads_convert();//開啟下一次采集
}
if((volt_val > 9000)&&(current_ch < 6)){//
current_ch++;
Input_CH_Select();
}else if((volt_val < 100)&&(current_ch > 4)){//5
current_ch--;//
Input_CH_Select();
}
else if (volt_val < 20){
current_ch=6;
Input_CH_Select();
}
}這段程序沒測量時一直4 5 6通道變換,有沒有大佬講一下如何在內(nèi)有測量時保持在6通道。
作者:
Hephaestus
時間:
2024-4-17 16:17
根據(jù)你的代碼邏輯,沒有輸入的時候應該停留在最低檔位上,現(xiàn)在來回亂跳,應該是輸入懸空的時候,ADC輸出值不是0造成的,檢查硬件吧。
作者:
@GS
時間:
2024-4-17 17:07
Hephaestus 發(fā)表于 2024-4-17 16:17
根據(jù)你的代碼邏輯,沒有輸入的時候應該停留在最低檔位上,現(xiàn)在來回亂跳,應該是輸入懸空的時候,ADC輸出值 ...
else if (volt_val < 20){
current_ch=6;
Input_CH_Select();
} 我沒加這行代碼之前,沒有輸入的時候確實停留在最低檔位上,
現(xiàn)在我想想的是沒有給它輸入的時候,先停留在6的檔位,然后當有輸入時在根據(jù)輸入信號的大小去到它合適的量程。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1