اطلاعیه

Collapse
No announcement yet.

دریافت uart با وقفه

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

    دریافت uart با وقفه

    سلام
    من و دوستم امروز از ساعت 10 صبح تا الان که 16 باشه داریم سعی میکنیم با وقفه اطلاعات دریافت کنیم
    متاسفانه اصلا میکرو تو روتین وقفه وارد نمیشه
    پیشاپیش از جواب هاتون متشکرم
    اینم کد:
    توضیح : یک led برای دیباگ کردن به پین 0.1 وصل هست و از rx0 هم اطلاعات بهش میدیم و دیگر هیچ با جیلینک هم دیباگ میکردیم عملا در حلقه while باقی میموند در حالی که دیباگر uart رو که از منوی پریفرالز اوردم هم بهش اطلاعات میرسید هم پرچم وقفه رو میبرد بالا!
    کد:
    //In the Name of God//
    #include "LPC17xx.h"
    void feed(void)
    {
    	LPC_SC->PLL0FEED = 0xAA;
    	LPC_SC->PLL0FEED = 0x55;
    }
    
    
    void PLL_set(void)
    {
    	LPC_SC->SCS = 0x30;
    	LPC_SC->PLL0CON = 0;
    	feed();
    	
    	while(!(LPC_SC->SCS & 0x40));
    	
    	LPC_SC->CLKSRCSEL = 1;
    	LPC_SC->PLL0CFG = 0x000f;
    	feed();
    	
    	LPC_SC->PLL0CON = 1;
    	feed();
    	
    	LPC_SC->CCLKCFG = 3;
    	
    	LPC_SC->PCLKSEL0 |= 0x03c0;
    	
    	while((LPC_SC->PLL0STAT & 0x04000000) == 0);
    	
    	LPC_SC->PLL0CON = 3;
    	feed();
    	
    }
    
    int main(void)
    {
    	PLL_set();
     LPC_SC->PCONP |= (1 << 3);
    	int usFdiv;
    	
    	
    	
    		LPC_PINCON->PINSEL0 |= (1 << 4) | (1 << 6);
    		LPC_UART0->LCR = 0x80 | 0x3;
    		LPC_UART0->DLL = (12000000 / 16) / 38400; 
    		LPC_UART0->DLM = 	0;
    		LPC_UART0->LCR = (0x03);
    		LPC_UART0->FCR |= 0x07;
    			
    		LPC_UART0->IER = (1 << 2)|(1<<0);
    		NVIC_EnableIRQ(UART0_IRQn);	
    	__enable_irq();
    LPC_GPIO0->FIODIR=0x02;
    	LPC_GPIO0->FIOSET = 0x02;	
    	
    	int c;
    	
    	//LPC_GPIO0->FIOCLR = 0x02;	
    	
    	
    	while(1)
    		{
    			c++;
    }
    	
    }
    
    
    
    __irq void UART0_IRQHandler(void)
    {
    	int i;
    	i = LPC_UART0->IIR;
    	
    	i = LPC_UART0->RBR;
    	LPC_DAC->DACR = (i<<6);
    	LPC_GPIO0->FIOCLR = 0x02;
    	return;
    	
    }
    عملا کدم هم چیز خاصی نداره اولش که پی ال ال رو ست کردم بعد یوآرت رو و بعدشم وقفه اش


    head<=
    ...تشکر خدا...
    [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

    #2
    پاسخ : دریافت uart با وقفه

    سلام
    وقتی وقفه دریافت فعال باشه و NVIC آن هم فعال تا دریافت بشه میره در زیر روال وقفه. در زی روال وقفه هم تا از رجیستر دریافت خوانده شود پرچمش پاک میشه ...
    تنظیمات بادریت در میکرو و کامپیوتر هم مهمه
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...

    دیدگاه


      #3
      پاسخ : دریافت uart با وقفه

      نوشته اصلی توسط mzarkoob
      سلام
      وقتی وقفه دریافت فعال باشه و NVIC آن هم فعال تا دریافت بشه میره در زیر روال وقفه. در زی روال وقفه هم تا از رجیستر دریافت خوانده شود پرچمش پاک میشه ...
      تنظیمات بادریت در میکرو و کامپیوتر هم مهمه
      خب مشکل همینجاست ، در کد من زیر روال وقفه رو ببینید من LED م رو خاموش میکنم ولی وقتی اجرا میشه LED خاموش نمیشه ... تو جی لینک هم با F11 و F10 خط به خط جلو میرم وقتی اطلاعات میرسه میبینم که FIFO پر میشه ولی اصلا وقفه اتفاق نمی افته!

      head<=
      ...تشکر خدا...
      [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

      دیدگاه


        #4
        پاسخ : دریافت uart با وقفه

        خیلی بی خود کرده که نمیره در زیر روال وقفه! :biggrin:
        خوب وقتی رجیسترها درست طبق روندی که گفتم تنظیم شده باشه حتما میره. حداقا تا الانش که برا من این طوری بوده! کدتون صحیح باشه برای شما هم همین طور خواهد شد.
        یه سری موارد اضافه در کدتون دیدم لزومی نبود باشه . با ساده ترین حالت انجام بدهید و تنظیم اضافه ای نباشه
        فيلم آموزشي ميکروکنترلر LPC1768
        فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
        فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
        فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...

        دیدگاه


          #5
          پاسخ : دریافت uart با وقفه

          سلام داداش دقیقا بگو با کدوم سریال و پین ها میخوای که کدشو برات بزارم
          فرکانس میکرو و باود ریتت رو هم بگو
          جواب بعضي حرفا فقط يه نفس عميقه ، بذار تو دلت بمونه...

          دیدگاه


            #6
            پاسخ : دریافت uart با وقفه

            نوشته اصلی توسط alireza hammamizadeh
            سلام داداش دقیقا بگو با کدوم سریال و پین ها میخوای که کدشو برات بزارم
            فرکانس میکرو و باود ریتت رو هم بگو
            داداشم ممنون که جواب دادی
            مشکلم کلا با کیل بود حل شد
            http://www.eca.ir/forum2/index.php?topic=95522.0

            head<=
            ...تشکر خدا...
            [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

            دیدگاه

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