为了可靠,建议 return ((u16)TH0 << 8) | TL0; 虽然返回值是unsigned int但C51可能会在处理过程中直接操作8位而出错。 |
返回是16位,TH0 =Hi Byte TL0=Lo Byte 因为要返回16 bits ,所以將 TH0 左移8位 ,再OR(加上) TL0 返回 |
返回值是16位的,计算时的零时变量就是16位了。 |
你已经声明返回值是unsigned int,那么处理返回值当然要用同样的数据类型来操作。 |
TH0是8位的,左移8位自然是0 |
你觉得它会不会是16位的,左移8位只是后8位变零了前面8位还在。 |