Help!! Nhận giá trị ADC qua RS485
Mình cho mô phỏng truyền nhận dữ liệu giữa 2 con pic16f877 qua chuẩn 485 và có trục trặc: Nếu ở SLAVE mình cho đọc giá trị nhiệt độ từ LM35 và truyền giá trị đo được qua MASTER như sau:
adc=read_adc();
adc=(adc*0.48828); //LM 35
EN_485=1;// cho chân RE/DE lên 1
printf("%f",adc);
bên MASTER mình sẽ khai báo mảng để lưu giá trị nhận được thông qua ngắt:
float bienluu[1];
khi xảy ra ngắt thì MASTER sẽ làm công tác sau:
#INT_RDA
void Receive_isr()
{
bienluu[1]=getc();
}
sau đó sẽ cho hiển thị giá trị adc nhận được như sau:
lcd_putcmd(0x80);
printf(lcd_putchar,"Gia tri nhan duoc:%f",bienluu[1]);
giá trị adc nhận được trên MASTER chạy lung tung không đúng với giá trị nhiệt độ bên SLAVE đo được. các cao thủ xem giúp mình với.
|