اطلاعیه

Collapse
No announcement yet.

مشکل با ADC

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

    مشکل با ADC

    سلام

    من قسمت ADC رو راه انداختم ولی با اینکه مقدار آنالوگ حدود نیم ولت تغییر میکنه ولی مقدار خونده شده ثابت هستش
    اگه دستی مقدار صفر یا 3 ولت بدم مقدار خونده شده تغییر میکنه
    از پایه 42 یا همون P1.30 استفاده کردم

    برنامه :

    تعریف اولیه :
    کد:
    #define BRD_ADC_PREPARED_CHANNEL		(ADC_CHANNEL_4)
    #define BRD_ADC_PREPARED_INTR			 (ADC_ADINTEN4)
    #define BRD_ADC_PREPARED_CH_PORT		(1)
    #define BRD_ADC_PREPARED_CH_PIN			(30)
    #define BRD_ADC_PREPARED_CH_FUNC_NO	(1)
    تنطیمات اولیه
    کد:
    	PINSEL_ConfigPin(BRD_ADC_PREPARED_CH_PORT, 
    							BRD_ADC_PREPARED_CH_PIN, 
    							BRD_ADC_PREPARED_CH_FUNC_NO);
    	PINSEL_SetAnalogPinMode(BRD_ADC_PREPARED_CH_PORT,
    		          BRD_ADC_PREPARED_CH_PIN,ENABLE);
    	
    	ADC_Init(LPC_ADC, 3000000);
    	ADC_IntConfig(LPC_ADC, BRD_ADC_PREPARED_INTR, DISABLE);
    	ADC_ChannelCmd(LPC_ADC, BRD_ADC_PREPARED_CHANNEL, ENABLE);
    خواندن مقدار :
    کد:
    	unsigned int val;
    
    	ADC_StartCmd(LPC_ADC, ADC_START_NOW);
    
    	while (!(ADC_ChannelGetStatus(LPC_ADC, BRD_ADC_PREPARED_CHANNEL, ADC_DATA_DONE)));
    
    	val = ADC_ChannelGetData(LPC_ADC, BRD_ADC_PREPARED_CHANNEL);
    
    	val = val >> 2;

    #2
    پاسخ : مشکل با ADC

    کل این 40 صفحه رو برای این مشکل و مشکل rtc و مدار راه انداز lm386 خوندم
    ولی هیچ تاپیک مفید و درست حسابی ای نبود
    دوستان هم که یاری نمی کنن :cry2:

    دیدگاه


      #3
      پاسخ : مشکل با ADC

      سلام
      خوب ته کد اینو گذاشتید که این میشه
      val = val >> 2;
      فيلم آموزشي ميکروکنترلر LPC1768
      فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
      فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
      فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...

      دیدگاه


        #4
        پاسخ : مشکل با ADC

        نوشته اصلی توسط mzarkoob
        سلام
        خوب ته کد اینو گذاشتید که این میشه
        val = val >> 2;
        نه از اون نیست وقتی با JLink تریس می کنم این دستور

        کد:
        ADC_ChannelGetData
        همش یه مقدار رو بر میگردونه البته این رو هم اضافه کنم اگه به پایه ADC خروجی تقسیم مقاومتی رو وصل کنم با تغییر مقاومت ها مقدار تغییر می کنه ولی در حالت عادی که به قطعه وصل هستش تغییر نمی کنه
        وقتی هم پایه ADC جدا هستش ولتاژش 2.88 هستش
        پایه vref هم دقیقا 3 هستش و با سلف و خازن ترتیبش رو استاد کردم

        دیدگاه


          #5
          پاسخ : مشکل با ADC

          خب یه سوال و آخرین سوال وقتی ولتاژ 1.5 دادم به پایه چطوری بخونم مقدار ولتاژ رو
          یعنی هر یک واحد خونده شده چند ولت میشه؟

          آقای زرکوب حق با شما بود اونجا تقسیم به 4 شده و تو مقادیر نزدیک اعداد به هم نزدیک میشن

          دیدگاه

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