ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2012/01/04
    101
    2

    مشکل کد خواندن ADC در lpc17xx

    سلام.
    ببخشيد چرا تو اين کد هيچ وقت خوندن ADC تموم نميشه ؟ يعني هيچ وقت بيت DONE برابر 1 نميشه ؟

    کد:
    #include <lpc17xx.h>
    
    int ReadADC();
    int adcVal;
    int main()
    {
    	LPC_PINCON->PINSEL1 |= (1<<14);
    
    	LPC_SC->PCONP |= (1<<12);
    	LPC_ADC->ADCR |= (0<<1);
    	LPC_ADC->ADCR |= (0<<8);
    	LPC_ADC->ADCR |= (0<<21);
    
    	//LPC_SC->PCLKSEL0 |= (1<<24);
    	while(1)
    	{
    		adcVal = ReadADC();
    	}
    	return 0;
    }
    
    int ReadADC()
    {
    	int result;
    	
    	LPC_ADC->ADCR |= (1<<24);
    	
    	while ((LPC_ADC->ADGDR & 0x80000000) == 0);
    	result = LPC_ADC->ADDR0;
    	return result;
    }
    هرچي چکش ميکنم مشکلش رو پيدا نميکنم. ممنون ميشم اگه کسي راهنمايي کنه :redface:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  2. #2
    2012/10/25
    463
    32

    پاسخ : مشکل کد خواندن ADC در lpc17xx

    من از وقفه ADC استفاده کردم و برنامه من کار ميکنه. از اين استفاده کن بهتره

    کد:
    /******************************************************************
    mr.homsyon
    Voltmetr 0-3.3V
    ADC INT CH5
    ******************************************************************/
    #include <lpc17xx.h>
    #include <stdio.h>
    
    #define LCD_LPC1768    
    #define LCD_PORT_2
    #define LCD_RS   0
    #define LCD_RW   1
    #define LCD_E   2
    #define LCD_DB4  4
    #define LCD_DB5  5
    #define LCD_DB6  6
    #define LCD_DB7  7
    #include <lcd.H>
    
    delay(){
    	int d;
    	for(d=0;d<300000;d++);
    }
    
    void ADC_IRQHandler(){	
    	int a;
    	char buf[16];
    	float v;
    	a = (LPC_ADC->ADGDR >> 4 & 0xFFF);
    	v = (a * 3.3) / 4096;
    	sprintf(buf,"Voltage: %4.3f",v);
    	lcd_gotoxy(1,1);
    	lcd_putsf(buf);
    	LPC_ADC->ADCR |= (1 << 24);
    }	 
    
    main(){
    
    	SystemInit();
    	lcd_init();
    	lcd_clear();
    
    	LPC_PINCON->PINSEL3 |= (3UL<<30);       
    	LPC_SC->PCONP |= (1 << 12);
    	LPC_ADC->ADCR |= ((1 << 5) | 				 // channel number 
    					 (4 << 8) | 			 				 // ADC clock is 25MHz/5 
    					 (1 << 21));        // Enable ADC
    	LPC_ADC->ADINTEN |= 0x80;      // Enable ADC Interrupt 
    	NVIC_EnableIRQ(ADC_IRQn);
    	LPC_ADC->ADCR |= (1 << 24);
    	while(1){      
    		}
    }
  3. #3
    2013/01/09
    شاهرود
    401
    9

    پاسخ : مشکل کد خواندن ADC در lpc17xx

    شما که دارید دائم ADC رو میخونید.اونم بدون قید و شرطی
  4. #4
    2012/10/25
    463
    32

    پاسخ : مشکل کد خواندن ADC در lpc17xx

    آره ولي اين برنامه رو همين جوري واسه تست نوشته بودم
    من بيشتر از CMSIS استفاده مي کنم زياد با رجيستر هاي ADC خودتون رو خسته نکنيد
    کد:
    #include <lpc17xx.h>
    #include "LPC17xx_pinsel.h"
    #include "LPC17xx_adc.h"
    #include <stdio.h>
    
    #define LCD_LPC1768
    #define LCD_PORT_2
    #define LCD_RS   0
    #define LCD_RW   1 
    #define LCD_E    2
    #define LCD_DB4   4  
    #define LCD_DB5   5 
    #define LCD_DB6   6
    #define LCD_DB7   7
    #include "lcd.h"
    
    void Delay(void){
    	int wait;
    	for(wait=0;wait<5000000;wait++);
    }
    
    int main(void){
    	PINSEL_CFG_Type	PinCfg;
    	int adc5;
    	float v;
    	char lcd1[1];
    	
    	PinCfg.Portnum=1;
    	PinCfg.OpenDrain=0;
    	PinCfg.Pinnum=31;
    	PinCfg.Funcnum=3;
    	PINSEL_ConfigPin(&PinCfg);
    	
    	
    	ADC_Init(LPC_ADC,180000);
    	ADC_ChannelCmd (LPC_ADC,ADC_CHANNEL_5,ENABLE);
    	Delay();
    	lcd_init();
    	lcd_init();
    	lcd_init();
    	lcd_clear();
    	while(1){
    		ADC_StartCmd(LPC_ADC,ADC_START_NOW);
    		while(!(ADC_ChannelGetStatus(LPC_ADC,ADC_CHANNEL_5,ADC_DATA_DONE)));
    		adc5=ADC_ChannelGetData(LPC_ADC,5);
    		
    		v=(adc5*3.3)/4095;
    		sprintf(lcd1,"Vin: %1.2f V  ",v);
    		
    		lcd_gotoxy(0,0);
    		lcd_putsf(lcd1);
    		
    	}
    }
  5. #5
    2013/01/09
    شاهرود
    401
    9

    پاسخ : مشکل کد خواندن ADC در lpc17xx

    نقل قول نوشته اصلی توسط Homayon
    آره ولي اين برنامه رو همين جوري واسه تست نوشته بودم
    من بيشتر از CMSIS استفاده مي کنم زياد با رجيستر هاي ADC خودتون رو خسته نکنيد
    کد:
    #include <lpc17xx.h>
    کد:
     
    نه با شما نبودم.مشکل برنامه اول را نوشتم که میگه هیچ وقت تمام نمیشه
  6. #6
    2012/01/04
    101
    2

    پاسخ : مشکل کد خواندن ADC در lpc17xx

    نقل قول نوشته اصلی توسط arvin2009
    شما که داريد دائم ADC رو ميخونيد.اونم بدون قيد و شرطي
    ببخشيد ميشه بيشتر توضيح بديد ؟ کانفيگش کردم رو سعي کرد از رو ديتاشيت انجام بدم ديگه :read:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  7. #7
    2012/01/04
    101
    2

    پاسخ : مشکل کد خواندن ADC در lpc17xx

    نقل قول نوشته اصلی توسط Homayon
    من از وقفه ADC استفاده کردم و برنامه من کار ميکنه. از اين استفاده کن بهتره

    کد:
    /******************************************************************
    mr.homsyon
    Voltmetr 0-3.3V
    ADC INT CH5
    ******************************************************************/
    #include <lpc17xx.h>
    #include <stdio.h>
    
    #define LCD_LPC1768    
    #define LCD_PORT_2
    #define LCD_RS   0
    #define LCD_RW   1
    #define LCD_E   2
    #define LCD_DB4  4
    #define LCD_DB5  5
    #define LCD_DB6  6
    #define LCD_DB7  7
    #include <lcd.H>
    
    delay(){
    	int d;
    	for(d=0;d<300000;d++);
    }
    
    void ADC_IRQHandler(){	
    	int a;
    	char buf[16];
    	float v;
    	a = (LPC_ADC->ADGDR >> 4 & 0xFFF);
    	v = (a * 3.3) / 4096;
    	sprintf(buf,"Voltage: %4.3f",v);
    	lcd_gotoxy(1,1);
    	lcd_putsf(buf);
    	LPC_ADC->ADCR |= (1 << 24);
    }	 
    
    main(){
    
    	SystemInit();
    	lcd_init();
    	lcd_clear();
    
    	LPC_PINCON->PINSEL3 |= (3UL<<30);       
    	LPC_SC->PCONP |= (1 << 12);
    	LPC_ADC->ADCR |= ((1 << 5) | 				 // channel number 
    					 (4 << 8) | 			 				 // ADC clock is 25MHz/5 
    					 (1 << 21));        // Enable ADC
    	LPC_ADC->ADINTEN |= 0x80;      // Enable ADC Interrupt 
    	NVIC_EnableIRQ(ADC_IRQn);
    	LPC_ADC->ADCR |= (1 << 24);
    	while(1){      
    		}
    }
    ممنون. ولي چون تازه شروع کردم ميخام با ريجستر ها بيشتر آشنا شم. :smile:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  8. #8
    2012/01/04
    101
    2

    پاسخ : مشکل کد خواندن ADC در lpc17xx

    عحب اشتباهي کردم . اصلا حواسم نبود دارم صفرو شيفت ميدم :redface:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
نمایش نتایج: از 1 به 8 از 8

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

  1. پاسخ: 7
    آخرين نوشته: 2014/11/03, 17:51
  2. LPC17xx PLL Wizard + سورس
    توسط Abbas Sarami در انجمن NXP
    پاسخ: 10
    آخرين نوشته: 2014/08/13, 09:23
  3. آموزش LPC17XX
    توسط havin در انجمن NXP
    پاسخ: 6
    آخرين نوشته: 2013/09/15, 08:39
  4. کانتر در LPC17XX
    توسط mohammadttl در انجمن NXP
    پاسخ: 6
    آخرين نوشته: 2013/05/25, 13:00
  5. LPC17xx and uart0
    توسط uvwxyz در انجمن NXP
    پاسخ: 5
    آخرين نوشته: 2011/11/13, 16:33

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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