cuốn sách gpt4 ai đã làm

Làm cách nào để ghi giá trị dấu phẩy động trên LCD?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 08:25:27 27 4
mua khóa gpt4 Nike

Tôi đang tính tỷ lệ trọng lượng là giá trị float như 862.145, 56.21, 664.008 giá trị này Tôi muốn đặt trên LCD 16x2 Tôi đang sử dụng PIC18F4550 trong MPLAB IDE v8.83

đây là mã của tôi

float BMR_Male(tuổi unsigned char,trọng lượng int không dấu,chiều cao int không dấu)
{
float BmrForMale = 0,term1=0,term2=0,term3=0;
int intValue = 0,anotherIntValue = 0;
float diffValue = 0;
char str1[20],str2[20];
unsigned age1 = Tuổi;
unsigned int Weight1 = Trọng lượng;
unsigned int Height1 = Chiều cao;
số hạng1 = 13,75 * Trọng lượng;
intValue = (int)term1;
diffValue = term1 - (float)intValue;
anotherIntValue = (int)(diffValue * 1000.0);
sprintf(str1, (const far rom char*)"%s", intValue);
sprintf(str2, (const far rom char*)"%s", anotherIntValue);
for(z=0;z!='\0';z++)
{
LCD_write(str1[z]);
myMsDelay(5);
}
LCD_write('.');
myMsDelay(5);
for(z=0;z!='\0';z++)
{
LCD_write(str2[z]);
myMsDelay(5);
}
// term2 = 5 + Height1;
// term3 = 6,76 * age1;
// BmrForMale = (term1)+(term2)-(term3)+66;
trả về BmrForMale;
}

Ở đây tôi chỉ hiển thị một từ... term2 và term3 được nhận xét để đơn giản..

Ở đây tôi chỉ nhận được '.' trên màn hình LCD... không phải str1 và str2

câu trả lời hay nhất

Hoàn toàn không có lý do gì để sử dụng float trong trường hợp này. Ngoài việc viết mã13:75, bạn cũng có thể viết1375. Hãy thử giới hạn các phép tính ở số nguyên 8 bit và 16 bit. Khi tất cả các phép tính đã hoàn tất, hãy in dấu phẩy thập phân ở bất cứ đâu bạn muốn.

Sự khác biệt là nếu bạn sử dụng float, trình biên dịch PIC18 của bạn sẽ phải từ chối mộtCực kỳ chậm và tốn bộ nhớchương trình. Bạn không lập trình cho PC! Bạn không có FPU và chúng ta đang nói về CPU chậm nhất vẫn đang được sản xuất trên thế giới...

Nếu chương trình của bạn đang thực hiện các hàm lượng giác, xử lý tín hiệu, toán học nâng cao, v.v., bạnCần sử dụng phao. Trong trường hợp này, bạn đã chọn sai MCU.

Tương tự như vậy, nếu bạn sử dụng họ hàm printf, chương trình của bạn sẽ trở nên cực kỳ chậm và tốn nhiều bộ nhớ. sprintf có thể tiêu diệt mọi tài nguyên có sẵn trong PIC của bạn. Trong trường hợp này, chỉ cần triển khai quy trình chuyển đổi số nguyên thành chuỗi của riêng bạn. Nó tầm thường và có rất nhiều mã có sẵn trên SO.

Vì bạn chỉ có sẵn một vài kb RAM nên mã hiện tại của bạn rất có thể sẽ bị tràn ngăn xếp và có thể tiêu thụ toàn bộ RAM có sẵn chỉ thông qua chức năng này.

Làm cách nào để ghi giá trị dấu phẩy động trên LCD? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/30724522/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress