欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機 我在主函數加了一個子函數之后,我的按鍵函數就不能用了
[打印本頁]
作者:
噠勞德
時間:
2020-5-1 16:06
標題:
單片機 我在主函數加了一個子函數之后,我的按鍵函數就不能用了
我在主函數加了一個子函數之后,我的按鍵函數就不能用了,我去掉那個加的函數后,按鍵函數又可以用了。這是什么原因造成的,編譯都沒問題。
作者:
Jiam
時間:
2020-5-1 17:31
編譯器只會檢測語法有沒有錯 編譯通過只說明語法沒問題 加的子函數里面有沒有while循環 單片機是順序執行的 這中情況一般是子函數里面有循環跳不出 導致無法執行下一步
還有問這種問題要把有問題的源碼發一下 ,不然都是盲猜 ,這樣你解決問題的效率就低了
作者:
十里春風
時間:
2020-5-1 19:15
可能io口問題吧
作者:
xxpp2011
時間:
2020-5-1 22:19
程序在你加的那個子函數里面跑不出來,按鍵函數就等于不存在了。
作者:
噠勞德
時間:
2020-5-2 10:21
Jiam 發表于 2020-5-1 17:31
編譯器只會檢測語法有沒有錯 編譯通過只說明語法沒問題 加的子函數里面有沒有while循環 單片機是順序執 ...
子函數涉及到的就這些,我把wendu()放到主函數就不行了。沒放按鍵還是可以實現的
unsigned char ADC0832()//ad轉換,返回結果,運用了I2c總線
{
unsigned char i,data_c;
data_c=0;
ADC_CLK=0;
ADC_DI=1;
ADC_CS=0;//拉低cs端
ADC_CLK=1;
ADC_CLK=0;//拉低LCK端,形成下降沿1
ADC_DI=1;//指定轉換通道是CH1還是CH2。H
ADC_CLK=1;
ADC_CLK=0;//拉低CLK端,形成下降沿2
ADC_DI=0;//指定值右移一位,再取最后一位的值。L
ADC_CLK=1;
ADC_CLK=0;//拉低CLK,形成下降沿3
ADC_DI=1;
for(i=0;i<8;i++)//采集一次
{
ADC_CLK=1;
ADC_CLK=0;
if(ADC_DI)
data_c|=0x80>>i;
//data_c=(data_c<<1)|ADC_DO;//在每個脈沖的下降沿DO輸出一位數據,最終ch為8位二進制數
}
/*for(i=0;i<8;i++)//采集第二次
{
if(ADC_DI)
data_c|=0x01<<i;
ADC_CLK=1;
ADC_CLK=0;
}*/
ADC_CS=1;//取消片選 一個轉換周期結束
ADC_CLK=1;//拉高數據端,回到初始狀態
ADC_DI=1;
return(data_c);
}
void disp_TP(float f_data)
{
uint tp;
if(f_data<0)
{
Disp1Char(9,0,('-'));
tp=f_data;
tp=tp-1;
f_data=~tp;
}
f_data=f_data*100;
DispStr(7,0,"T=");
Disp1Char(10,0,((int)f_data/1000+0x30));
Disp1Char(11,0,((int)f_data%1000/100+0x30));
Disp1Char(12,0,('.'));
Disp1Char(13,0,((int)f_data%1000%100/10+0x30));
Disp1Char(14,0,(0xdf));
Disp1Char(15,0,('C'));
}
void wendu()
{
v=ADC0832();
temp=v;
RV=BaseVol/256*temp;
RT=RV*10/(BaseVol-RV);
tmpp=1/(1/TN+(log(RT/RN)/B))-273.15;
disp_TP(tmpp);
if(tmpp>h)//當溫度大于h時,蜂鳴器響
{
beep();
DispStr(3,1,"Th");
delaynms(20);
}
if(tmpp<g)//當溫度小于g時,蜂鳴器響
{
beep();
DispStr(3,1,"Tl");
delaynms(20);
}
}
作者:
Jiam
時間:
2020-5-3 01:01
beep()這個函數可以發一下嗎 你按鍵函數發的這些沒問題 就算沒現象 也不影響 看看beep()里面有沒有死循環
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1