سلام.
من یه مشکلی با کدویژن پیدا کردم که از دوستان خواهش میکنم برای رفع اون کمک کنن.فقط اول میگم که میخوام چکار کنم بعد مشکل را توضیح میدم:
دوستان اگه توی فرمول زیر :
[HTML]p=(500*(read_adc(0)-41))/921[/HTML]
به جای read_adc(0) عدد 1023 را بذاریم،حاصل عبارت میشه 533.1161780673181
فرض بگیریم که میخواهیم حاصل فرمول را بر روی یک lcd نمایش بدیم.به این منظور از دستورات زیر استفاده می کنیم:
[HTML]
lcd_clear();
lcd_gotoxy(0,0);
sprintf(str1,"P=%.2f",p);
lcd_puts(str1); [/HTML]
در ضمن متغیرها بصورت زیر تعریف شده اند :
کد:
unsigned char str1[16];
float p;
اما مشکل اینجاست که به ازای read_adc(0)>171 ، دیگه کدویژن حاصل فرمول را درست بدست نمیاره.
مثلا برای read_adc(0)=171، مقدار محاسبه شده برای فرمول 70 هست ولی برای read_adc(0)=172 مقدار محاسبه شده برای فرمول 0 میشه و از 173 تا1023، مقدارمحاسبه شده برای فرمول از1 تا 35 افزایش پیدا میکنه.
این چیزایی که گفتم را هم با پروتئوس و هم عملی تستش کردم.
ممنون میشم اگه کسی مشکلو حل کنه
با تشکر