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





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









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





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

نمایش نتایج: از 1 به 6 از 6
  1. #1
    2013/05/10
    615
    7

    دريافت 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. #2
    2007/08/04
    اصفهان
    577
    5

    پاسخ : دريافت uart با وقفه

    سلام
    وقتي وقفه دريافت فعال باشه و NVIC آن هم فعال تا دريافت بشه ميره در زير روال وقفه. در زي روال وقفه هم تا از رجيستر دريافت خوانده شود پرچمش پاک ميشه ...
    تنظيمات بادريت در ميکرو و کامپيوتر هم مهمه
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
  3. #3
    2013/05/10
    615
    7

    پاسخ : دريافت uart با وقفه

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

    head<=
    ...تشکر خدا...
    [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]
  4. #4
    2007/08/04
    اصفهان
    577
    5

    پاسخ : دريافت uart با وقفه

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

    پاسخ : دريافت uart با وقفه

    سلام داداش دقيقا بگو با کدوم سريال و پين ها ميخواي که کدشو برات بزارم
    فرکانس ميکرو و باود ريتت رو هم بگو
    جواب بعضي حرفا فقط يه نفس عميقه ، بذار تو دلت بمونه...
  6. #6
    2013/05/10
    615
    7

    پاسخ : دريافت 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]
نمایش نتایج: از 1 به 6 از 6

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

  1. پاسخ: 7
    آخرين نوشته: 2014/12/19, 08:47
  2. وقفه دريافت با USART يا استفاده از getchar
    توسط ajapyy در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2013/11/25, 07:02
  3. مشکل با وقفه دريافت ارتباط سريال
    توسط naserim در انجمن پروسسورهای ARM
    پاسخ: 16
    آخرين نوشته: 2013/04/13, 20:47
  4. دريافت اينتراپتي (با وقفه پروتكل uart)
    توسط erfan m در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2012/01/12, 11:06
  5. دريافت اطلاعات با uart در bascom8051
    توسط explode در انجمن 8051
    پاسخ: 1
    آخرين نوشته: 2009/12/31, 16:33

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

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

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

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

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