NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2893 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 4 از 4

موضوع: مشکل طولانی شدن زمان اجرای دستورات در stm32f103ret6

  1. #1
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    11
    تشکر
    5
    تشکر شده 1 بار در 1 پست

    پیش فرض مشکل طولانی شدن زمان اجرای دستورات در stm32f103ret6

    سلام دوستان
    من کدهای زیر رو تویه stm32f103re نوشتم اما زمان اجراش خیلی زیاده حدود 120 میکروثانیه اما من چون نیاز دارم سوییچچینگ انجام بدم نیاز دارم تا زمان اجرای این دستورات به 10 میکروثانیه برسه نمیدونم مشکل از کجاست با اینکه تعداد کدها هم کمه (فرکانس هم 72 مگاهرتز هست)
    کد:
    GPIOA->BSRR = 0x0001; ADC1ConvertedValue = ADC_GetConversionValue(ADC1); V_adc = ADC1ConvertedValue; v_adc = (V_adc/4095)*3.3f; v_adc = v_adc-(1.65f); // v_adc = v_adc-(3.3/2); v_adc1 = v_adc/(1.125f); // v_adc = v_adc-(3.3/2); u_k = v_adc; y1_k = -0.9476f*y1_k_2 + 1.946f*y1_k_1 - 0.0262f*u_k_2 + 0.0262f*u_k; y2_k = -0.9476f*y2_k_2 + 1.946f*y2_k_1 + 0.0004814f*u_k_2 + 0.0009629f*u_k_1 + 0.0004814f*u_k; u_k_2 = u_k_1; u_k_1 = u_k; y1_k_2= y1_k_1; y1_k_1 = y1_k; y2_k_2= y2_k_1; y2_k_1 = y2_k; /* ***********************************************************************/ valpha = y1_k; vbeta = y2_k; Vd = cosf(teta_out_k)*valpha + sinf(teta_out_k)*vbeta; Vq = -sinf(teta_out_k)*valpha + cosf(teta_out_k)*vbeta; Vd_in_k = 0-Vd; Vd_out_k = Vd_out_k_1 + 92.25f*Vd_in_k - 91.75f*Vd_in_k_1; Vd_in_k_1 = Vd_in_k; Vd_out_k_1 = Vd_out_k; Vd_out_m_k = Vd_out_k;// Vd_out_m_k = Vd_out_k + (2*pi*50); teta_out_k = teta_out_k_1 + 5.85e-005f*Vd_out_m_k + 5.85e-005f*Vd_out_m_k_1; Vd_out_m_k_1 = Vd_out_m_k; teta_out_k_1 = teta_out_k; sin_data = -sinf(teta_out_k+pi/6); d1 =0.6f * sin_data*199; d = d1; d2 =0.6f * v_adc1*199; db = d2; if(d1>=0){ GPIOA->BSRR = 0x0100; // A.8 GPIOA->BSRR = 0x0200; // A.9 } else { GPIOA->BRR = 0x0100; GPIOA->BRR = 0x0200; } GPIOA->BRR = 0x0001;
    ویرایش توسط dariush_ab : 26-05-2016 در ساعت 22:50

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    راحت ترین کار استفاده از میکرویی هست که به صورت سخت افزاری محسابات floating point رو پشتیبانی کنه مثل سری 4xx

  4. #3
    تازه وارد
    تاریخ عضویت
    May 2016
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    به نظر من ام از میکروبی استفاده کنی بهتره

  5. #4
    کاربر فعال ppittl آواتار ها
    تاریخ عضویت
    Sep 2009
    نام
    اکبری
    نوشته ها
    138
    تشکر
    44
    تشکر شده 72 بار در 46 پست

    پیش فرض

    این قسمت رو با اسمبلی بنویس یا بقول دوستان اگر خیلی فاصله داری از نظر زمانی.با یه کنترلر بالاتر امتحان کن

موضوعات مشابه

  1. راه اندازی sdio میکرو stm32f103ret6
    توسط omid_544 در انجمن stm32
    پاسخ: 10
    آخرين نوشته: 11-06-2016, 10:04
  2. انتخاب و راه اندازی lcd با stm32f103ret6
    توسط ngh523 در انجمن stm32
    پاسخ: 9
    آخرين نوشته: 24-12-2015, 10:36
  3. راه اندازی mmc با spi stm32f103ret6
    توسط omid_544 در انجمن stm32
    پاسخ: 3
    آخرين نوشته: 16-11-2015, 11:27
  4. USB Device Stm32f103ret6
    توسط omid_544 در انجمن stm32
    پاسخ: 5
    آخرين نوشته: 02-08-2015, 14:22
  5. [درخواست] کمک فوری, توضیح مراحل راه اندازی UART در STM32f103ret6
    توسط Raha323 در انجمن stm32
    پاسخ: 11
    آخرين نوشته: 07-04-2015, 16:20

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •