اطلاعیه

Collapse
No announcement yet.

مشکل با adc میکرو کنترلر pic

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

    مشکل با adc میکرو کنترلر pic


    با سلام خدمت دوستان
    من میخوام یه adc فعال کنم ولی هر کاری میکنم پله های تغییرش درست کار نمی کنه مثلا از 704 تا 655 تغییر نداره یهو میشه 655 البته ابن تغیرات با همه ولتاژ ها یکی نیست ولی کلیتش اینه که تغییراتش نسبت به ولتاژی که میدم بهش درست نیست البته با یه برنامه ساده چک کردم با یه پتانسیومتر 10 دور که در حد 5mv تغییر ایجا کنم ولی این ثابت میمونه با چندتا میکرو 16f877 و 18f452 هم چک کردم با رفرنس داخلی و خارجی هم چک کردم ولی نشد البته تو پروتوس کار میکنه به ترتیب هم تغییر میکنه اگه لطف کنید راهنمایی کنید ممنون می شم واقعا گیرم .کامپایلرم هم ccs . :cry2: :cry2:



    اینم برنامه :
    #include <adc.h>
    #include <stdio.h>
    #define LCD_ENABLE_PIN PIN_B0
    #define LCD_RS_PIN PIN_B1
    #define LCD_RW_PIN PIN_B2
    #define LCD_DATA4 PIN_B4
    #define LCD_DATA5 PIN_B5
    #define LCD_DATA6 PIN_B6
    #define LCD_DATA7 PIN_B7
    #include <LCD.C>

    float adc;
    void main()
    {
    setup_adc_ports(ANALOG_RA3_REF);
    setup_adc(ADC_CLOCK_DIV_2);
    setup_psp(PSP_DISABLED);
    setup_spi(SPI_SS_DISABLED);
    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
    setup_timer_1(T1_DISABLED);
    setup_timer_2(T2_DISABLED,0,1);
    setup_comparator(NC_NC_NC_NC);
    setup_vref(FALSE);
    lcd_init();

    // TODO: USER CODE!!
    set_tris_c(0x0f);
    set_tris_d(0xff);

    set_adc_channel(1);
    while(1){
    lcd_clear();
    adc=read_adc();
    lcd_gotoxy(3,1);
    printf(lcd_putc,"%f",adc);
    delay_ms(10);


    }
    }

    #2
    پاسخ : مشکل با adc میکرو کنترلر pic

    فکر کنم از منبع کلاک باشه :
    این دستورات رو بذار ببین درست میشه یا نه
    setup_adc_ports(ALL_ANALOG);
    setup_adc( ADC_CLOCK_INTERNAL );

    اون adc.h واسه چیه؟
    AYRIC

    دیدگاه


      #3
      پاسخ : مشکل با adc میکرو کنترلر pic

      سلام
      بعد از اینکه پست گذاشتم علتشو فهمیدم
      ولی نمیدونم چرا درست کار نمیکنه همین جوری الکی تغییر دادم درست شد البته من
      setup_adc(ADC_CLOCK_DIV_8);
      کد بالا رو نوشتم
      فک میکنم علتش اینه که adc نمی تونست با کلاک 20M من کار کنه درسته ؟
      اوم adc.h هم چیزی نیست اسم پروژه است
      در هر صورت لطف کردین ممنون

      دیدگاه

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