Em viết code cho PIC 18F4620 dùng CCS, khi lập trình đọc và xử lý các giá trị cảm biến cần dùng định dạng float, thử chuyển kết quả về máy tính thì thấy toàn là 0.00. Do quá trình xử lý dữ liệu có nhân với 1 hằng số khá nhỏ nên kết quả <0.01 là chuyện bình thường, nhưng em có thắc mắc là khi hiển thị như vậy, kết quả mà PIC lưu trong RAM là 0.00xxx hay là 0.00?
VD như em đặt biến const float P = 3.14159, khi cho hiển thị lên LCD ( printf(lcd_putc,"P= %f", P) hoặc chuyển kết quả về máy tính (printf("P= %f" , P) đều nhận được kết quả là 3.14. Như vậy con PIC nó có hiểu số P em định nghĩa hay là nó tự làm tròn? Nếu nó không tự làm tròn mà em muốn nhận được kết quả số thực với nhiều chữ số sau dấu phẩy hơn thì phải dùng lệnh gì? (Chương trình em tính toán với nhiều số nhỏ nên yêu cầu chính xác cao)
VD như em đặt biến const float P = 3.14159, khi cho hiển thị lên LCD ( printf(lcd_putc,"P= %f", P) hoặc chuyển kết quả về máy tính (printf("P= %f" , P) đều nhận được kết quả là 3.14. Như vậy con PIC nó có hiểu số P em định nghĩa hay là nó tự làm tròn? Nếu nó không tự làm tròn mà em muốn nhận được kết quả số thực với nhiều chữ số sau dấu phẩy hơn thì phải dùng lệnh gì? (Chương trình em tính toán với nhiều số nhỏ nên yêu cầu chính xác cao)
Comment