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





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









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





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

نمایش نتایج: از 1 به 3 از 3
  1. #1
    2012/12/03
    40
    8

    سنسور LM35 با وقفه میکرو


    با سلام وخسته نباشيد
    دوستان بعد مطالعه رجيستراي مبدل انالوگ به ديجبتال سنسور دماي LM35 رو به روش سرکشي و بدون وقفه راه اندازي کردم
    بعدش خواستم با استفاده از وقفه اين کارو بکنم و کد زير رو نوشتم
    مشکلم اينه که داخل حلقه بينهايت اگه استارت نزنم اعداد نامعتبري ميگيرم و نميدونم چرا؟ مگه بعد خروج از وقفه خود ميکرو استارت نميزنه؟؟
    اگه از مهندساي عزيز کسي اين سنسور رو با وقفه (دستورات رجيستري )و بدون مشکل راه انداحته کدشو بذاره تا مقايسه کنم
    ممنونم ازهمگي
    کد:
    #include "lpc17xx.h"               /* LPC17xx definitions  */
    #include "lcd4bit.h"
    #include <stdio.h>
    
    
    
    
    void Delay (uint32_t Time)
    {
      uint32_t i;
      
      i = 0;
      while (Time--) {
        for (i = 0; i < 5000; i++);
      }
    }
    
    
    void ADC_IRQHandler (void) 
    {
    	char	buff[20];
    	unsigned short current_value;
    	 int s;
    	unsigned int i;
    	while ((LPC_ADC->ADGDR & 0x80000000) == 0);
    	i = LPC_ADC->ADDR0; // Read A/D Data Register
     current_value = (i >> 4) & 0x0FFF; // bit 4:15 is 12 bit AD value
    	s = current_value/13;
    		 	sprintf(buff,"Temp = %i ",s);
    		 lcd_puts(buff);
    			Delay(1500);
    		 command(0x01);
    			NVIC_DisableIRQ(ADC_IRQn);	
    }
    
    //===================================================================================================
    int main(void){
    	lcd_init_4bit();
    	Delay(1000);
    //==========================================================
    	LPC_PINCON->PINSEL1 = 1 << 14; // p0.23 select as ADC0.0  23-16=7 2*7=14
     LPC_SC->PCONP |= (1 << 12); // Enable power to AD block 
    		
     LPC_ADC->ADCR |= (1<<0);    //select AD0.0 0x1 0x2 0x4 0x8 1000
     LPC_ADC->ADCR |= 1<<8;   		// 	ADCLK is 12.5 MHz 1 0000 0000
    	//LPC_ADC->ADCR |= 0x10000;  // BURST bit  1 << 16
     LPC_ADC->ADCR |= 0x200000;  //Power up,  1 << 21
     //LPC_ADC->ADCR |= 0x08000000; //Start conversion on a falling edge on the selected CAP/MAT signal.
    	              // 1 << 27
     //-----------------------------
     LPC_ADC->ADCR |= 0x01000000; // Start A/D Conversion , When the BURST bit is 0 
    
    LPC_ADC->ADINTEN |= 0x00000001;			// Enable interrupt on channel 0	
    		
    	//===========================================================
    	
    			
    			//LPC_ADC->ADCR &= ~(7<<24);           /* stop conversion */
    			//LPC_ADC->ADCR |= (1<<24);           /* start conversion */
    			
    	
    	while(1){
    		
    		LPC_ADC->ADCR |= (1<<24);           /* start conversion */ چرا باید باشه؟؟؟؟؟
    		 NVIC_EnableIRQ(ADC_IRQn);	
       
    		
    		}
    	
    }
    If your dreams don't scare you,They aren't big enough
  2. #2
    2007/08/04
    اصفهان
    577
    5

    پاسخ : سنسور LM35 با وقفه میکرو

    سلام
    من خیلی وارد جزییات کد نشدم ولی یه سوال از خودتون بپرسید: با توجه به مفهوم موقفه ، این عبارت while ((LPC_ADC->ADGDR & 0x80000000) == 0); در زیر روال وقفه چه کاری می کنه دقیقا !!!!!!!؟
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
  3. #3
    2012/12/03
    40
    8

    پاسخ : سنسور LM35 با وقفه میکرو

    اون دستور بیت DONE رو چک میکنه و وجودش تو روتین وقفه کاملا غیرضروری و بیخوده !!
    بعد خوردن به مشکل عدم دریافت عدد معتبر از این واحد با کد ور رفتم تا علتو پیدا کنم و این قسمت یادم رفته پاکش کنم
    با استارت در حلقه بینهایت while مشکل برطرف شد اما نمیدونم چرا؟؟؟؟؟
    If your dreams don't scare you,They aren't big enough
نمایش نتایج: از 1 به 3 از 3

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

  1. پاسخ: 9
    آخرين نوشته: 2016/02/24, 08:00
  2. تغییر کد دماسنج LM35 و میکرو atmega16 به میکرو atmega8
    توسط ShahinRad در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2015/04/01, 10:39
  3. تغییر کد دماسنج LM35 و میکرو atmega16 به میکرو atmega8
    توسط ShahinRad در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2015/03/30, 00:14
  4. مشکل با سنسور LM35 با میکرو
    توسط iman4web در انجمن میکروکنترلرهای AVR
    پاسخ: 27
    آخرين نوشته: 2014/03/06, 08:25
  5. فرق سنسور lm35 با lm35 dz
    توسط ali-electoronic در انجمن سنسورها
    پاسخ: 3
    آخرين نوشته: 2010/09/08, 10:46

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

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

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

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

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