在微控制器C語言裡面,關於float的問題高分,速度解決

時間 2022-06-05 07:25:03

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口後...