欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
請教如何做優化單片機串口發送程序
[打印本頁]
作者:
happy2058
時間:
2021-10-26 11:43
標題:
請教如何做優化單片機串口發送程序
code uchar HMI1[4]= {0xcc,0x33,0xc3,0x3c}; //幀尾
uchar Switching_coordinates[13]={0x00}; // 數據緩存
code uchar Powerout[6]={0xAA,0x00,0xcc,0x33,0xc3,0x3c}; //幀頭
void HMI_switch(uchar number,int Xs,int Ys,int Xe,int Ye,int X,int Y) //因為輸座標麻煩,不方便移植 ,所以自動拆高底位
{
send_string( HMI2_switch,2); //發幀頭
Switching_coordinates[0]=number; //圖片編號
Switching_coordinates[1]=(uchar)(Xs>>8);
Switching_coordinates[2]=(uchar)Xs;
Switching_coordinates[3]=(uchar)(Ys>>8);
Switching_coordinates[4]=(uchar)Ys;
Switching_coordinates[5]=(uchar)(Xe>>8);
Switching_coordinates[6]=(uchar)Xe;
Switching_coordinates[7]=(uchar)(Ye>>8);
Switching_coordinates[8]=(uchar)Ye;
Switching_coordinates[9]=(uchar)(X>>8);
Switching_coordinates[10]=(uchar)X;
Switching_coordinates[11]=(uchar)(Y>>8);
Switching_coordinates[12]=(uchar)Y;
send_string(Switching_coordinates,13); //發數據
send_string(HMI1,4); //幀尾
}
mian{
while(1)
{
HMI_switch(0x02,0x0150,0x01d0,0x01c8,0x0248,0x0150,0x01d0); //每秒發一次
if (ul_clok_satar)
{
ul_clok_satar=~ul_clok_satar;
PWMCounter++;
if(PWMCounter<=ul_PWMCounterSATAT[ul])
ul_PWM=1;
else
ul_PWM=0;
if(PWMCounter>=200)
PWMCounter=0;
}
}
}
void TM0_Isr() interrupt 1 //100US
{
if(facecare)
{
facecare_Time_Counter=~facecare_Time_Counter;
}
if (ul_satar|clok_satar)
{
ul_clok_satar=~ul_clok_satar;
}
}
每次到發送的時候,串口占用時間過長,定時器雖然反轉了,主程序跟不上。PWM會有0.2MS偏差
我是把計數寫在中斷直接處理輸出。還是怎么改一下 定時器1已經被另一路高速PWM占用了。
作者:
yaosongjin
時間:
2021-10-26 15:19
定時器中斷頻率太高了吧
作者:
188610329
時間:
2021-10-26 18:27
做一個緩沖池,把需要串口發送的內容先全部送入緩沖,然后,改寫串口發送部分,不要用 while(TI); 用if(TI); 用計數方式,每發一個字節 計數 +1,入口判斷if(Ti); 那么進入發下一字節,下一字節賦值給SBUF之后,立刻出來,去執行if (ul_clok_satar) 里面的內容,然后再回來判斷 if(TI); 決定是否發送下一字節。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1