1樓:
1全部路程 = 10cm = 100mm = 100*1000 um(微公尺)
unsigned char 無符號位元組型,最大能表示256-1,佔1位元組
unsigned int 無符號整型,最大能表示65536-1,佔2位元組
unsigned long 佔4位元組。
m/s = um/us ,公尺/秒 等價於 微公尺/微秒
思路是這樣的,精確到0.1m/s 可以先放大10倍,最後 %10 (取模,就是求餘數),就是小數,然後輸出到顯示;
unsigned long distance;
unsigned int overflow_value; //定時器溢位值
unsigned long times; //定時器時間t
unsigned long speed_integer; //速度_整數
unsigned char speed_decimal_fraction; //速度_小數 ,只有一位所以,字元型即可
distance = 100*1000 ;
times = overflow_value *256*256 + (th0*256) + tl0;
speed_integer = distance /times ;
speed_decimal_fraction = (10*distance /times)%10; //先10倍,再取餘數,就是小數字
//最後speed_integer 轉成 一位位 輸出到數碼管。
2樓:
float是c語言中的乙個資料型別 它屬於浮點型資料類 在浮點型變數中的單精度 你最好仔細研究一下關於這方面的書籍 不然你會越來越糊度 %f是輸出浮點數時指定的格式符 %d是輸出整數時指定的格式符
3樓:匿名使用者
最好不要用浮點吧。
可以把要算的結果 x10 那麼算出來的結果就是需要的結果的10倍。
再用移位來處理資料。
這樣效率高很多。
c51微控制器中如何把 乙個float 的變數取出它的整數存入乙個unsingde char變數中?請問你這問題是怎麼解決的
4樓:橡樹葉ノ羈絆
使用強制型別轉換
bai即可du
#define uchar unsigned charfloat f = 2.577;
uchar a;
a = (uchar) f; //用uchar將float強制型別zhi轉換至無符號字元型
注意dao這種情況下對f的符號處回理,我記不太清答c語言是怎麼規定的,如果不放心可以手動處理符號,如果為負就所有位取反加一
5樓:匿名使用者
使用強制型別轉換即可.
51微控制器c語言如何把浮點型轉為字串 ?
6樓:yin138海波
使用stdio.h中的sprintf函式轉化即可:
#include
float a = 1.234;
char str[10];
sprintf(str, "%f", a);
7樓:
用乙個聯合體,可以把浮點數轉換為字元型資料。
例如:union f_to_char;
先把ft0賦值,然後chr[4]中就有了字元型資料。
微控制器c語言程式設計錯誤求解決,怎麼改? float ad_turn(uchar i) *** 要改成沒有錯誤的答案 100
如何把乙個很大的float資料提取出來。微控制器c51
8樓:ㄨ『正典』灝皴
我以前試過,51微控制器裡float和double儲存的只到小數點後6位,就像你說的5123456789在51微控制器裡是以5.123456e+9儲存的,也就是5123456000,後邊的都丟失了,所以簡單的程式應該是不可能算到你說的精度的。在32位微控制器上用long long 可以儲存差不多20位的整數,但是keil 51是不支援的。
你用這麼大的數幹什麼?不行就換一種方法吧。
9樓:匿名使用者
你這個5123456789是float型的? 那這數本身這已經丟失精度了, 你想一下,float和long同是4個位元組,為什麼float反而會比long表示的範圍大的多?
如果你這個數是字串,有別的處理方法。
微控制器c語言中,微控制器C語言中 while a 是什麼意思 a為什麼要定義得那麼大 比如
金色潛鳥 我估計,那是用來作時間間隔控制。while a 是迴圈50000次,當a 變0時,while 結束。為何定得如此大,是因為空迴圈速度很快,只有迴圈很多次才能獲得足夠長的時間間隔。a 50000 while a 第2個 while a 似乎有問題,死迴圈。是不是前面漏了另乙個 a 50000...
微控制器C語言程式設計題,微控制器C語言程式設計題 20
爬行的山羊 這是兩個題啊。哈哈好做,第一個有c語言的冒泡法排序,第二個用中斷,讀,輸出就可以 include define led0 0 define led1 1 define led2 2 define ledport p2 sbit sw0 p1 0 sbit sw1 p1 1 sbit sw...
微控制器c語言中定義,微控制器C語言中 定義a1 P0 1 a2 P0 2 a8 P0 7 b P2 0 。a1 a8不斷隨機為1。
這樣實現 sbit p20 p2 0 char consum 0 char i,bitflag 0x01 for i 0 i 8 i if consum 3 p20 1 希望我的回答對你有幫助,有什麼問題歡迎一起 謝謝。 如果是c51微控制器 include void main 如果找完一次p0口後...