时钟芯片16进制时间转换问题
很多时钟芯片的时间显示是16进制的,比如0x15意味着15点。如果是系统自带的printf例如,我在增加系统内存,甚至不能使用它。系统中遇到了这个问题,需要时间才能将数据发送到服务器,但主板当时没有完成,这是多余的。当你收到数据时,记录这个时间,不是吗?我们必须发送,但没有办法,协议是这样的要求,所以我只能连接一个时钟模块,最初使用pcf但是用完了,急着用,手头只有ds1302,用这个。 这两个都是16进制显示时间,这就遇到了我一开始的问题。因为程序很大,所以使用printf之后说超了,别无选择,只能自己写一个小程序,效果不错,有需要就可以用。 u8 hextoint(u8 x) { u8 v; if(x>=0x10 && x<=0x19) v=x-6; else v=x; if(x>=0x20 && x<=0x29) v=x-12; if(x>=0x30 && x<=0x39) v=x-18; if(x>=0x40 && x<=0x49) v=x-24; if(x>=0x50 && x<=0x59) v=x-30; if(x>=0x60 && x<=0x69) v=x-36;
return v;
}