隱藏的比較深的一個bug
阿新 • • 發佈:2019-02-16
static uint8_t LcdGetFontIndex(uint8_t font)
{
if(font == '-')
{
return 10;
}
else if(font == ':')
{
return 11;
}
else if(font == ' ')
{
return 12;
}
else
{
return font - 0x30;
}
}
void LcdGetFontDot(uint8_t font, uint8_t *dotData)
{
uint8_t i;
uint8_t offset;
uint8_t index;
index = LcdGetFontIndex(font);
if(index == 12)
{
for(i=0; i<16; i++)
{
dotData[i] = 0x00;
}
return;
}
offset = index*16;////////////////////////////////////
for(i=0; i<16; i++)
{
dotData[i] = LcdRtcDotFont[offset+i];
}
//printf(" font:%x index:%x offset:%x\n", font, index, offset);
{
if(font == '-')
{
return 10;
}
else if(font == ':')
{
return 11;
}
else if(font == ' ')
{
return 12;
}
else
{
return font - 0x30;
}
}
void LcdGetFontDot(uint8_t font, uint8_t *dotData)
{
uint8_t i;
uint8_t offset;
uint8_t index;
index = LcdGetFontIndex(font);
if(index == 12)
{
for(i=0; i<16; i++)
{
dotData[i] = 0x00;
}
return;
}
offset = index*16;////////////////////////////////////
for(i=0; i<16; i++)
{
dotData[i] = LcdRtcDotFont[offset+i];
}
//printf(" font:%x index:%x offset:%x\n", font, index, offset);
}
offset = index*16;////////////////////////////////////
16在此比較特殊,導致font引數是0/'0',1/'1',...9/'9',時,offset的值是相等的。