请教一下各位,我用上位机对话框输入一个数值(电压),精度0.01,发送到dspic16位单片机,再通过can通信传给上位机显示出来。
输入三万以下,返回的值都正确,输入三万多以上返回的值就错了,比如说,输入30000返回300是对的,但是输入40000返回402,50000返回5021
请问是什么原因啊?万分感谢!
上位机部分代码:
int mv;
void CATSDlg::OnEnChangeMv()
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
char ch1[10];
GetDlgItem(IDC_MV)->GetWindowText(ch1,10);
mv=atoi(ch1);
UpdateData(FALSE);
}
下位机部分代码:
ByteA[5]=(int)(MV*100)%256;
ByteA[6]=(int)(MV*100)/256;
|