سلام دوستان
دوستان من یه برنامه دارم که اطلاعات چندتا سنسور دما رو به pc قرار بفرسته خروجی سنسورها رو میتونم رو ترمینال نشون بدم اما این خروجی float هست چطور میتونم تو دو بایت اطلاعات هر سنسور رو جا بدم؟
سلام دوستان
دوستان من یه برنامه دارم که اطلاعات چندتا سنسور دما رو به pc قرار بفرسته خروجی سنسورها رو میتونم رو ترمینال نشون بدم اما این خروجی float هست چطور میتونم تو دو بایت اطلاعات هر سنسور رو جا بدم؟
با چندتا ضرب و تقسیم و باقیمانده گیری شما میتونید تک تک ارقام رو جدا کنید چه برسه به قسمت اعشار و صحیح
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
[QUOTE=esisafa;98497]با چندتا ضرب و تقسیم و باقیمانده گیری شما میتونید تک تک ارقام رو جدا کنید چه برسه به قسمت اعشار و صحیح[/QU
میشه بیشتر راهنمایی کنید
برنامه زیر رو نگاه کنید ( مثال ds1820 نرم افزار mikroc است)
شما می تونید تک تک کاراکتر ها رو به دست بیارین.کد:void Display_Temperature(unsigned int temp2write) { const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8; char temp_whole; unsigned int temp_fraction; // check if temperature is negative if (temp2write & 0x8000) { text[0] = '-'; temp2write = ~temp2write + 1; } // extract temp_whole temp_whole = temp2write >> RES_SHIFT ; // convert temp_whole to characters if (temp_whole/100) text[0] = temp_whole/100 + 48; else text[0] = '0'; text[1] = (temp_whole/10)%10 + 48; // Extract tens digit text[2] = temp_whole%10 + 48; // Extract ones digit // extract temp_fraction and convert it to unsigned int temp_fraction = temp2write << (4-RES_SHIFT); temp_fraction &= 0x000F; temp_fraction *= 625; // convert temp_fraction to characters text[4] = temp_fraction/1000 + 48; // Extract thousands digit text[5] = (temp_fraction/100)%10 + 48; // Extract hundreds digit text[6] = (temp_fraction/10)%10 + 48; // Extract tens digit text[7] = temp_fraction%10 + 48; // Extract ones digit // print temperature on LCD Lcd_Out(2, 5, text); }
سلام
من میخوام دمای هر سنسور رو اینجوری با این ÷روتکل بفرستم حالا چطور باید تبدیل کنم؟
void TRANSMITE DATA (void)
{
BYTE0 = 0;
BYTE1.B0 = d0;
BYTE1.B1 = d1;
BYTE1.B2 = d2;
BYTE1.B3 = d3;
BYTE1.B4 = d4;
BYTE1.B5 = d5;
BYTE1.B6 = 1;
BYTE1.B7 = 0;
BYTE2.B0 = d6;
BYTE2.B1 = d7;
BYTE2.B2 = d8;
BYTE2.B3 = d9;
BYTE2.B4 = d10;
BYTE2.B5 = d11;
BYTE2.B6 = 0;
BYTE2.B7 = 1;
BYTE3.B0 = d0 ^ d6;
BYTE3.B1 = d1 ^ d7;
BYTE3.B2 = d2 ^ d8;
BYTE3.B3 = d3 ^ d9;
BYTE3.B4 = d4 ^ d10;
BYTE3.B5 = d5 ^ d11;
BYTE3.B6 = 1;
BYTE3.B7 = 1;
putchar(BYTE0);
putchar(BYTE1.B);
putchar(BYTE2.B);
putchar(BYTE3.B);
}//