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

موضوع: مشکل در نمایش اعداد اعشاری در AVRStudio

  1. #1
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    Icon2008 مشکل در نمایش اعداد اعشاری در َِAVRStudio

    با سلام
    وقتی که از ADC مقادیر رو می خونم اون رو در یک متغیر float قرار می دم و بعد با استفاده از تابع sprintf مقادی رو روی lcd نماش می دهم ولی اعشاری را نشون نمیده...به صورت 212.00000
    اگه میشه راهنمایی کنید. در ضمن با تغییر متغییر به double بازهم تغییری در خروجی ایجاد نشد.میکرو هم xmega32a4
    این هم برنامه :
    [PHP]#include <avr/io.h>
    #include "lcd.h"
    #include <avr/delay.h>
    #include <stdio.h>
    #include "avr_compiler.h"
    #include "adc_driver.h"
    #define ADC_INPUT ADC_CH_MUXPOS_PIN1_gc

    int main(void)
    {
    float ADC_result;
    char lcd_buff[20];
    lcd_init(LCD_DISP_ON);
    ADC_CalibrationValues_Load(&ADCA);
    ADC_ConvMode_and_Resolution_Config(&ADCA, ADC_ConvMode_Unsigned, ADC_RESOLUTION_12BIT_gc);
    ADC_Reference_Config(&ADCA, ADC_REFSEL_VCC_gc);
    ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV8_gc);
    ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH1,ADC_CH_ INPUTMODE_SINGLEENDED_gc,ADC_CH_GAIN_1X_gc);
    ADC_Ch_InputMux_Config(&ADCA.CH1, ADC_INPUT, 0);
    ADC_Enable(&ADCA);
    ADC_Wait_32MHz(&ADCA);
    lcd_home();
    lcd_puts("ADC0.1 LCD XMEGA");
    _delay_ms(3000);
    lcd_clrscr();
    while(1)
    {
    ADC_Ch_Conversion_Start(&ADCA.CH1);
    while(!ADC_Ch_Conversion_Complete(&ADCA.CH1));
    ADC_result = ADC_ResultCh_GetWord(&ADCA.CH1);
    sprintf(lcd_buff,"ADC=%4.4f",ADC_result);
    lcd_gotoxy(0,1);
    lcd_puts(lcd_buff);
    _delay_ms(500);
    lcd_clrscr();
    }
    }[/PHP]
    ویرایش توسط arm-mohsen-avr : 03-01-2012 در ساعت 00:29

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    کسی نیست یه راهنمایی کنه

  5. تشکرها از این نوشته :


  6. #3
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    دوستان کارم خیلی گیره کسی نیست من رو راهنمایی کنه

  7. تشکرها از این نوشته :


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

    پیش فرض

    عددی که شما از adc میخونی که اعشاری نیست
    اگر هم میخوای پد صفر اضافه بشه فکر کنم باید اینطوری بنویسی
    sprintf(lcd_buff,"ADC=%04.4f",ADC_result);

  9. کاربران : 3 تشکر کرده اند از شما mrm برای ارسال این پست سودمند:


  10. #5
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mrm نمایش پست ها
    عددی که شما از adc میخونی که اعشاری نیست
    با سلام
    دوستمون به نكته خوبي اشاره كردن كه متاسفانه من دقت نكرده بودم(خوب سرم شلوغه).
    درسته عددي كه از ADC ميخونيم مقداري صحيح(integer) از 0 تا 1023 داره!! و مشخصه اعشاري نيست.
    ویرایش توسط sadmonew : 05-01-2012 در ساعت 00:50
    _____________________________________
    _____________________________________

  11. کاربران : 2 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  12. #6
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    با تشکر از دوستان حالا این عدد رو چطور به اعشاری تبدیل کنم ...
    یعنی خروجی تابع ADC_ResultCh_GetWord(&ADCA.CH1 مقدار integer دارد ..؟؟
    حالا چطور با اعشار تبدیل کنم ؟

  13. تشکرها از این نوشته :


  14. #7
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط arm-mohsen-avr نمایش پست ها

    یعنی خروجی تابع adc_resultch_getword(&adca.ch1 مقدار integer دارد ..؟؟
    حالا چطور با اعشار تبدیل کنم ؟
    با سلام
    دوست عزيز همونطور كه دوستمون هم اشاره كردن خروجي adc يه عدد صحيح هستش.
    اگه بخوايد مقدار ولتاژ خونده شده توسط adc رو بدست بياريد، در اين صورت عدد اعشاري ميشه.
    _____________________________________
    _____________________________________

  15. تشکرها از این نوشته :


  16. #8
    کاربر فعال madar آواتار ها
    تاریخ عضویت
    Oct 2010
    نوشته ها
    109
    تشکر
    34
    تشکر شده 117 بار در 61 پست

    پیش فرض

    سلام
    دوستان یه برنامه ساده تو محیط avr studio 5 می خواستم که پورت a از xmega 128 را چمشک بزند
    متشکرم

  17. #9
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط madar نمایش پست ها
    سلام
    دوستان یه برنامه ساده تو محیط avr studio 5 می خواستم که پورت a از xmega 128 را چمشک بزند
    متشکرم
    با سلام
    دوست عزيز، ببخشيد اينو ميگم اما موضوع اين تاپيك با درخواست شما ارتباطي نداره.
    يه سرچ كنيد تو نت پيدا مي كنيد.
    _____________________________________
    _____________________________________

  18. #10
    مدیر باز نشسته armstk آواتار ها
    تاریخ عضویت
    Mar 2009
    نوشته ها
    926
    تشکر
    839
    تشکر شده 1,198 بار در 573 پست

    پیش فرض

    نقل قول نوشته اصلی توسط madar نمایش پست ها
    سلام
    دوستان یه برنامه ساده تو محیط avr studio 5 می خواستم که پورت a از xmega 128 را چمشک بزند
    متشکرم
    سلام
    داخله سمپل های avr استدیو , قکر میکنم یک مثال برای bilinki داره , البته مطمئن نیستم برای xmega باشه ولی باید بشه برای ایسمگا هم ادیتش کرد


    میکروکنترلر STM32103-RBT6 بطور کامل راه اندازی شد !!!
    مرحله بعدی اتصال TFT 3.2 به میکرو و بوت کردن UC-OS II + GUI !!!

    .

  19. #11
    کاربر فعال pooriya آواتار ها
    تاریخ عضویت
    Nov 2008
    نام
    پوریا علیزاده
    نوشته ها
    316
    تشکر
    163
    تشکر شده 676 بار در 217 پست

    پیش فرض

    سلام

    [PHP]#include <avr/io.h>
    #include <avr/delay.h>

    #define F_CPU 2000000UL

    int main(void)
    {

    PORTA_DIR=0XFF;

    while(1)
    {

    PORTA_OUTTGL=0XFF;
    _delay_ms(2000);

    }
    }
    [/PHP]
    ویرایش توسط pooriya : 12-01-2012 در ساعت 22:43

  20. تشکرها از این نوشته :


  21. #12
    کاربر فعال madar آواتار ها
    تاریخ عضویت
    Oct 2010
    نوشته ها
    109
    تشکر
    34
    تشکر شده 117 بار در 61 پست

    پیش فرض

    دستت درد نکنه آقا پوریا
    فقط می خواستم نحوه ی کار تو avr studio 5 بدستم بیاد.دارم کم کم یاد می گیرم انشاالله که بتونم کامل یاد بگیرم.

  22. #13
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    با سلام به دوستان
    کسی نمی دونه مشکل از کجاست ؟
    من فکر می کنم چون تابعی که خروجی رو می گیریم word هستش و نمیشه به اعشاری تبدیل کرد ...
    ایا راهی است که به اعشاری تبدیل بشه ؟

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

  1. خطا در کامپایلر avrstudio
    توسط arm-mohsen-avr در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 10
    آخرين نوشته: 02-02-2012, 01:02
  2. avrstudio 5 beta کامپایلری متفاوت
    توسط M3R در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 1
    آخرين نوشته: 09-03-2011, 10:39
  3. کمک در مورد ارور در avrstudio
    توسط external9 در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 1
    آخرين نوشته: 29-03-2010, 08:07

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

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