Board logo

标题: [求助]CodeWarrior警告说possible loss of data [打印本页]

作者: commandoccz    时间: 2008-4-22 21:39     标题: [求助]CodeWarrior警告说possible loss of data

#pragma CODE_SEG NON_BANKED
void interrupt 22 ATD0_Interrupt(void)
{
if(ATD0STAT1_CCF0 & 0)
{
AD_wData0 = ATD0DR0; //Read out the Result Register
//PORTB = (byte)AD_wData0;
SCITx((byte)AD_wData0);
PWMDTY1= AD_wData0*PWMPER1/255;  /*把AD采样的0-FF的范围转换城PWMDUTY的范围*/
}
if(ATD0STAT1_CCF1)
{
AD_wData1=ATD0DR1;
PORTB = (byte)AD_wData1;
PWMPER1= AD_wData1;
}

}
#pragma CODE_SEG DEFAULT_ROM

[此贴子已经被作者于2008-4-22 21:39:40编辑过]


作者: commandoccz    时间: 2008-4-22 21:41

红色字就是警告指向的地方,请问这个是为什么呢?
是因为我再频繁写PWM寄存器吗?
作者: 康桥人    时间: 2008-4-22 22:53

一般情况下,警告如果不多就可以不用管它,
作者: commandoccz    时间: 2008-4-23 08:35

呵呵~~只是想知道是怎么产生的
作者: strongchen    时间: 2008-4-23 09:46

一般是数据转换的问题,有可能丢失某些数据位。比如乘除法的溢出,字到字节的转换等等。
作者: 康桥人    时间: 2008-4-23 12:52

还有char类型的数拷贝int型的数,这种情况,注意一点就行了!
作者: zephanshaka    时间: 2008-7-24 20:37

楼上两位说的很对。应该是赋值时数据类型不匹配。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0