Trao đổi "lịch vạn niên":
Phần đo nhiệt độ dùng ADC 10 bít (MikroC chỉ có lệnh đọc ADC 10 bít), xử lý hiển thị dữ liệu bằng 8 bít -> kết quả không đúng (thay vì biến thiên từ 0 - 1023, kết quả chỉ biến thiên từ 0-255, lặp lại 4 lần) ?
Không biết xử lý thế nào đây, nhờ các huynh chỉ giúp !
--------------------------------------
12/4/2008:
Hà hà ! vấn đề ở kiểu dữ liệu: dùng các kiểu 1 byte chứa giá trị ADC 10 bit là không ổn.
Cụ thể, phần đo nhiệt độ của "lịch vạn niên" lập hàm như sau là ổn:
NHIETDO() {
char degree[7];
int temp1, temp2;
temp1 = Adc_Read(0); //Doc nhiet do tu cong ADC, 10 bit
temp2 = (temp1 - 558)/2; //Doi ra do C
IntToStr(temp2, degree); //Chuyen sang string
LCD_Out_CP(degree); //Hien thi LCD
}
thay đổi nội dung bởi: minhsondaklak, 13-04-2008 lúc 02:34 PM.
|