|
論壇的各位老鐵你們好。!向你們請(qǐng)教幾個(gè)問(wèn)題。
uint8 integer=0;//整數(shù)
uint8 decimals=0;//小數(shù)
是這樣的我搞了一個(gè)旋轉(zhuǎn)編碼器 想法是這樣的:就是說(shuō)使用4數(shù)碼管來(lái)顯示旋轉(zhuǎn)編碼器的值分為整數(shù)位和小數(shù)位,編碼器控制decimals小數(shù)變量加加和減減實(shí)現(xiàn)目的是小數(shù)每加到99,integer整數(shù)步進(jìn)加1。搞來(lái)搞來(lái)整數(shù)怎么也加不上去 小數(shù)減也減不回來(lái)。思路倒是有小數(shù)每到99整數(shù)加1 小數(shù)往回減99整數(shù)減1在程序上怎么也寫不出來(lái)實(shí)現(xiàn)不出來(lái)看來(lái)我還是道行潛了,所以來(lái)請(qǐng)教請(qǐng)教論壇的老鐵們,感激不盡。
下面這函數(shù)是我的旋轉(zhuǎn)編碼器的一個(gè)服務(wù)函數(shù):
void ROTARY_ROTARY_Service()//旋轉(zhuǎn)編碼器服務(wù)函數(shù)放到主循環(huán)里循環(huán)調(diào)用
{
static xdata uint8 Count=0;
Count++;
if(Count>=250)
{
Count=0;
switch(Read_ROTATE_Data)
{
case(1)://左轉(zhuǎn)
decimals--;
if(decimals>=99)
{
decimals=99;
}
Read_ROTATE_Data=0;
break;
case(2)://右轉(zhuǎn)
decimals++;
if(decimals>=99)
{
decimals=0;
}
Read_ROTATE_Data=0;
break;
default:break;
}
}
}
|
|