寫整數使用這些功能,我無法整數寫入到LCD:S它顯示了一個很奇怪的屏幕 我剛纔添加下面的功能!請查一下 我說一切都需要我不能在LCD AVR
my_delay(1000);
LCDWriteStringXY(0,0,"Welcome..");
my_delay(1000);
LCDWriteStringXY(0,0,"Welcome...");
my_delay(1000);
LCDClear();
LCDWriteStringXY(4,0,"Testing");
LCDGotoXY(2,1);
int m=952520;
LCDWriteInt(m,6);//I can not write it!!!
void LCDWriteInt(int val,unsigned int field_length)
{
char str[5]={0,0,0,0,0};
int i=4,j=0;
while(val)
{
str[i]=val%10;
val=val/10;
i--;
}
if(field_length==-1)
while(str[j]==0) j++;
else
j=5-field_length;
if(val<0) LCDData('-');
for(i=j;i<5;i++)
{
LCDData(48+str[i]);
}
}
這裏沒有足夠的信息。你的'LCDWriteInt'函數是什麼樣的?你使用什麼液晶顯示器?它是否有數據表? 8位或32位?只是舉幾個例子。 – jerry
void LCDWriteInt(int val,unsigned int field_length) \t char str [5] = {0,0,0,0,0}; \t int i = 4,j = 0; \t while(val) \t { \t str [i] = val%10; \t val = val/10; \t i--; \t} \t if(field_length == - 1) \t \t while(str [j] == 0)j ++; \t別的 \t \t J = 5- FIELD_LENGTH; \t if(val <0)LCDData(' - ');對於(i = j; i <5; i ++) \t \t { \t LCDData(48 + str [i]); \t} } – Nasr
同樣,它是一個8位的部分或一個32位的部分?也就是說,sizeof(int)是什麼?無論哪種方式,您的價值太大,但解決方案取決於數據大小。你需要寫的最大數量有多大(絕對值)? – jerry