View Single Post
Old 11-04-2008, 09:29 AM   #56
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
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.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn