L =S120
اريد الحصول على رقم 120 من التعليمة السابقة بدون حرف S
استخدمت isdigit ولكن لم تنجح
|
السلام عليكم
هل هذه البيانات تستلم من كمبيوتر اذا كانت كذلك فالامر بسيط تفعل خاصيه الانتربت عن طريق برتوكول uart
وتضع هذا الكود في داله الانتربت
كود:
if(RC1IF_bit==1 )
{
RC1IF_bit = 0;
temp=UART1_Read();
switch(cont)
{
case 0: if(temp=='S'){cont=1;cont1=0;}
else cont=0;
break;
case 1: if(temp>='0' && temp<='9')
{
data_recive_from_PC[cont1]=temp-'0';
cont1++;
if(cont1==3){ cont1=0;cont=0;recive_data=1;}
}
else { cont1=0;cont=0;}
break;
default : cont=0;break;
}
}
حيث اول مايستلم حرف S يصبح متغير cont=1 وبتالي راح يعمل على تخزين الارقام طبعا طالما ترسل بيانات بأسكي كود اذن لكي نحصل على الارقام لازم نطرحها من 48 او نكتبها '0'
وبعدما يصبح عداد بيانات الي أستلمت=3 اذن يصبح متغير recive_data=1 ويمكنك أستخدام هذا متغير في برنامج والارقام خزنت في مصفوفه data_recive_from_PC