سلام
من و دوستم امروز از ساعت 10 صبح تا الان که 16 باشه داریم سعی میکنیم با وقفه اطلاعات دریافت کنیم
متاسفانه اصلا میکرو تو روتین وقفه وارد نمیشه
پیشاپیش از جواب هاتون متشکرم
اینم کد:
توضیح : یک led برای دیباگ کردن به پین 0.1 وصل هست و از rx0 هم اطلاعات بهش میدیم و دیگر هیچ با جیلینک هم دیباگ میکردیم عملا در حلقه while باقی میموند در حالی که دیباگر 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; }
دیدگاه