2013-08-29 80 views
0

我想在ATMEGA8 進入使用鍵盤十進制值存儲號碼到現在我已經能夠只輸入整數值 下面如何十進制格式AVR

switch (keyCode)    
{ 

    case (0xee): 
      keyPressed="1"; 
      b=1; 
      a=a*10+b; 
      break; 
    case (0xed): 
      keyPressed="4"; 
      b=4; 
      a=a*10+b; 
      break; 
    case (0xeb): k 
      keyPressed="7"; 
      b=7; 
      a=a*10+b; 
      break; 

    case (0xde): 
      keyPressed="2"; 
      b=2; 
      a=a*10+b; 
      break; 
    case (0xdd): 
      keyPressed="5"; 
      b=5; 
      a=a*10+b; 
      break; 
    case (0xdb): 
      keyPressed="8"; 
      b=8; 
      a=a*10+b; 
      break; 
    case (0xd7): 
      keyPressed="0"; 
      b=0; 
      a=a*10+b; 
      break; 
    case (0xbe): 
      keyPressed="3"; 
      b=3; 
      a=a*10+b; 
      break; 
    case (0xbd): 
      keyPressed="6"; 
      b=6; 
      a=a*10+b; 
      break; 
    case (0xbb): 
      keyPressed="9"; 
      b=9; 
      a=a*10+b; 
}  
的代碼給出

使用上面的代碼,我能夠存儲一個整數寄存器中的

case (0xe7): keyPressed="."; 

上述情況是鍵代碼「」現在我想按「」後。鍵盤上它存儲在整數按下的所有密鑰的

+0

什麼是「b」和「a」,目前還不清楚你想要什麼。舉一個例子 –

+0

什麼樣的數據類型是'a'?它是整數類型還是浮點類型? –

回答

1

其基本的高中數學,你需要在10

Example - 
138.25 = (1 * 10^2) + (3 * 10^1) + (8 * 10^0) +   // integer part 
     (2 * 10^-1) + (5 * 10^-2)      // Float part 

權力代表數字我不會給你完整的代碼,但你可以使用這種想法

if (decimal) 
{ 
    a = a + b/(10^pow); 
} 
else 
{ 
    a = a * 10 + b 
} 

pow是十進制數字 - 在上面的例子(138.25)POW 2是1,以及pow 5是2。 所以需要維護計數器,用於pow