2013-02-05 111 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'。 –