 
- UID
- 185066
- 性别
- 男
|
本帖最后由 win2000_li 于 2011-10-15 16:58 编辑
关于显示乱码问题!@!! 最近做了一个小东西,用来显示(段码)三个参数。
交货后发现其中一个显示乱码,按程序应显示:———(三个1)
但是显示为: __ __| __ 多显示了两段。
__
在显示数据来源是正确的,因为第一个1和最后一个1是正确的,也是说第二个1的数据肯定也是正确, 问题应该发生在低层驱动那里。 所以我想问,指针变量在访问寄存器时是不是要必须加上volatile修饰符(我的没有加) 以下是我的低层驱动程序!
请大家指点一下。
void LcdPutNum(INT8U character, INT8U digit)
{
INT8U *pLCDWF21 = &LCDWF21;
INT8U ResValue = SetZero;
if (digit > MB_NIE)
return;
if ((MB_ZERO == digit) || (MB_ONE == digit))
{
digit = ClrZero;
}
else
{
digit = (digit - 1) << 1;
}
ResValue = (character & 0xf0) >> 4;
*(pLCDWF21 - LCDWF_HEGF - digit) &= ~MASK_HEGF; // Clears egments HEGF
*(pLCDWF21 - LCDWF_HEGF - digit) |= ResValue; // Writes Segments EGF ResValue = character & 0x0f;
*(pLCDWF21 - LCDWF_DCBA - digit) &= ~MASK_DCBA; // Clears egments DCBA
*(pLCDWF21 - LCDWF_DCBA - digit) |= ResValue; // Writes Segments A
} |
|