今天在调试过程中碰到的最头疼的问题就是在数字与字符串转化的问题,在网上找到相关的函数sprintf(),但一向出问题,原始代码:
unsigned char *s;
sprintf(s,”Value=%f.3″,tmp); // tmp为一浮点数
DispStr(0,2,s);
在sprintf函数处呈现一个正告,但能经过。下载至单片机,LCD2004在指定方位没有显现。
改善后的代码
char s[20];
sprintf(&s[0],”Value=%f.3″,tmp); // tmp为一浮点数
DispStr(0,2,(unsigned char *)s);
下载至单片机一切正常,只不过在小数点后边还有剩余的字符,不知道怎么处理掉…
后来发现问题所在:”Value=%f.3″应改为”Value=%.3f”
还有一个问题是ATMega16单片机PC口作为输出时PC2,PC3,PC4口一直为高电平,不知何以。其时使用了定时器T0