اطلاعیه

Collapse
No announcement yet.

صفر شدن جواب رابطه ریاضی

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

    صفر شدن جواب رابطه ریاضی

    سلام
    تو یه قسمت از برنامه که میخوام دستورو زیر اجرا بشه عدد برای velocity نمایش داده میشه مقدار time رو میخونم مشکلی نیست و اگه رابطه رو حذف کنم مقداری رو که به v نسبت بدم بازم درست نشون میده ولی وقتی رابطه اجرا میشه مقدار صفر میشه نمیدونم مشکل از کجاس
    رابطه ریاضی ---------------> v=200/time*10000
    ممنون
    کد:
    //ISR of INT0------>10 cm
    ISR (INT0_vect)
    {
    	PORTB |=(1<<PB0);
    	_delay_us(50);
    	PORTB &=~(1<<PB0);
    	unsigned int Time;
    	while (((PIND&0x80)>>7)==0)
    	{
    	}
    	TCNT1=0x00;
    	while (((PIND&0x80)>>7)==1)
    	{
    	}
    	Time=TCNT1;
    	unsigned int v;
    	v=((200/Time)*10000);
    	velocity=v;
    	EEPROM_Write(v);
    	Lcd4_Clear();
    	char string2[5];
    	itoa(Time,string2,10);
    	Lcd4_Set_Cursor(1,0);
    	Lcd4_Write_String(string2);
    	Lcd4_Set_Cursor(2,0);
    	Lcd4_Write_String("velocity= ");
    	char string1[5];
    	itoa (velocity,string1,10);
    	Lcd4_Write_String(string1);
    	_delay_ms(2000);
    	Lcd4_Clear();
    }
    //----------------------------------------------------

    #2
    پاسخ : صفر شدن جواب رابطه ریاضی

    وقت بخیر

    اگر مقدار time بیشتر از 200 شود !! مقدار رابطه 0 میشود !!

    برای رفع این مشکل
    200000/time
    رو استفاده کنید

    دیدگاه


      #3
      پاسخ : صفر شدن جواب رابطه ریاضی

      ممنون درست شد :job:
      یعنی اول جواب قسمت اول حساب میشه و به صورت int و سپس ضرب میشه
      پس اگه کاری که شما میگین انجام بدیم درست میشه
      سوال دیگم اینکه آیا میشه با casting یخعذمث این مشکل رو برطرف کرد یعنی اگه بیام ابتدا جواب (200/time) رو حساب کنم و به صورت double ذخیره کنم وبعد در 10000 ضرب کنم درست میشه

      دیدگاه

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