اطلاعیه

Collapse
No announcement yet.

مشکل در محاسبات اعشاری در codevision

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در محاسبات اعشاری در codevision

    سلام. من یه برنامه در مورد خوندن اطلاعات از adc میکرو نوشتم که بعدش ولتاژ رو روی lcd نشون میده و....

    ولی مشکلش اینه که ولتاژ اعشاری رو نشون نمیده و فقط بخش صحیحش رو نشون میده.

    فهمیدم که خروجی n=(m*5/1023); صحیح میشه در صورتی که باید اعشاری بشه . خود n رو هم بصورت float تعریف کردم .

    چیکار کنم؟؟؟




    ADCSRA.6=1;
    delay_ms(20);
    m=ADCW;
    n=(m*5/1023);
    lcd_gotoxy(5,0);
    lcd_putsf("Searching"
    lcd_gotoxy(2,1);
    sprintf(g,"AGC Voltage=%1.2fv",n);
    lcd_puts(g);
    As long as you can stand and see don't give up
    تا جایی که می توانی ببینی و می توانی بایستی ، مقاومت کن.
    مثل انگلیسی به نقل از پروفسور سید محمود حسابی - پدر علم فیزیک و مهندسی نوین ایران

    #2
    پاسخ : مشکل در محاسبات اعشاری در codevision

    قبلا توضیح داده شده که کامپایلرهای C هنگام محاسبات ریاضی نتیجه عدد رو بصورت عددی که بیشترین دقت رو در میان عملوندها داره انتخاب میکنند یعنی چی !!@؟؟؟
    a/b اگه a , b هر دو int باشند نتیجه هم int میشه مثلا 5/2 میشه 2 و نه 2.5 اما اگه یکیشون float باشه نتیجه هم float میشه
    شما برای حل مشکلت بنویسی
    m*5.0/1023.0 یکیش رو هم ممیز بذاری کافیه
    یاm رو بصورت موقت تبدیل کن به float اینوری m*5/1023(float)

    دیدگاه


      #3
      پاسخ : مشکل در محاسبات اعشاری در codevision

      نوشته اصلی توسط mojalan
      قبلا توضیح داده شده که کامپایلرهای C هنگام محاسبات ریاضی نتیجه عدد رو بصورت عددی که بیشترین دقت رو در میان عملوندها داره انتخاب میکنند یعنی چی !!@؟؟؟
      a/b اگه a , b هر دو int باشند نتیجه هم int میشه مثلا 5/2 میشه 2 و نه 2.5 اما اگه یکیشون float باشه نتیجه هم float میشه
      شما برای حل مشکلت بنویسی
      m*5.0/1023.0 یکیش رو هم ممیز بذاری کافیه
      یاm رو بصورت موقت تبدیل کن به float اینوری m*5/1023(float)
      ایول درست شد !
      :wow:

      ممنون بابت راهنماییت.
      As long as you can stand and see don't give up
      تا جایی که می توانی ببینی و می توانی بایستی ، مقاومت کن.
      مثل انگلیسی به نقل از پروفسور سید محمود حسابی - پدر علم فیزیک و مهندسی نوین ایران

      دیدگاه

      لطفا صبر کنید...
      X