2013-02-05 104 views
1

首先我的PIC是16f1625,我用MPLAB 8.86編程它。 我的問題很簡單,我有PC和PIC之間的通信,PC發送一個字節,PIC讀取這個字節,並做一些事情。 我的問題是,我想改善這個像這樣,個人電腦發送一個字母,如「R」,併發送後,我想設置的數字。今天我只有4種可能性,PC發送0,1,2或5,我根據這些設置分辨率。發送命令到PIC

switch(i) { 
    case 1: 
     pulsesPerMm = 10; 
     break; 
    case 2: 
     pulsesPerMm = 20; 
     break; 
    case 5: 
     pulsesPerMm = 51; 
     break; 
    case 10: 
     pulsesPerMm = 102; 

     break; 
} 

我收到命令這樣的:

while(!RCIF) /* set when register is not empty */ 
    continue; 
return RCREG; 

現在我想做的事情是這樣的:我收到指示下一個字會決議後這些,2個字節的「R」 ,這將是新的分辨率,我只需要做的就是將字符串轉換爲int(使用atoi),然後我可以設置pulsesPerMm。 問題是我有其他命令只需要一個字母,所以我不想改變這些。

回答

0

接通rx字符而不是數字,然後在你的'R'大小寫區塊中,調用getChar()函數返回接下來的兩個字符和atoi()它們。

+0

我不明白。當PC傳輸數據時,它只發送我不知道它是什麼時間,並且它會連續發送,因此我認爲我沒有時間將該字節標識爲'R'。 –