LPC17xx UART interrupt sorunu

Başlatan satilla, 17 Ocak 2013, 18:29:05

satilla

uarttan veri geldiginde interrupt rutinine programım dallanmıyor ve program ana döngüden çıkıyor

#include <LPC17xx.h>
#include "delay.h"
void uart_init3(void)
{
	LPC_SC->PCONP |= (1 << 25); //UART3 Power ver
	LPC_SC->PCLKSEL0 |=(1<<18) | (1<<19);													//UART3 Clock verildi 
   LPC_PINCON->PINSEL0 |=1<<1;//PINSEL ayarlamalari yaapiliyor.    P0.0 TXD3
   LPC_PINCON->PINSEL0 |=1<<3;																		//P0.1 RXD3
	

	  LPC_UART3->TER = 0x80;                       //Enable UART3 Transmit
	 LPC_PINCON->PINMODE0 |=(1<<1);
   LPC_UART3->LCR=0x83;															//frame formati belirleniyor   8 bits, no Parity, 1 Stop bit
   LPC_UART3->DLL=9;								// baud rate 115200'e ayarlaniyor
   LPC_UART3->DLM=0;
   LPC_UART3->FCR=0x7;
   LPC_UART3->FDR=1<<0|1<<5;
   LPC_UART3->LCR=0x03;									// Alim ve gönderim yapilabilmesi için DLAB biti '0'a çekildi.
	 LPC_UART3->IER |=(1<<0)|(1<<3);
}
int send_char3(int data3)
{
   while (!(LPC_UART3->LSR & 0x20));//THRE bosalana kadar bekleniyor.
   return(LPC_UART3->THR=data3);
}
unsigned char get_char3(void)
{
   while(!(LPC_UART3->LSR&(0x01)));//RDR dolana kadar bekleniyor.
   return(LPC_UART3->RBR);
}
void send_string3(char *str3)
{
   while(*str3!=0)
   {
   send_char3(*str3++);
   }                   
}
void USART3_IRQHandler(void) //USART3 kesmesi
{

    send_char3(LPC_UART3->RBR);  
	
}
 
int main()
{


//************Suruculer icin port tanimlamalari
LPC_GPIO0->FIODIR |=(1<<22) | (1<<24) | (1<<25);
LPC_GPIO1->FIODIR |=(1<<18) | (1<<20) | (1<<19);
LPC_GPIO2->FIODIR |=(1<<0) | (1<<2) | (1<<1);
//************Suruculer icin port tanimlamalari


delay(100);
uart_init0();
uart_init1();
uart_init3();

	NVIC_EnableIRQ(UART3_IRQn);
		
	
	//gsm_init();
for(;;)
 {

	delay(5000);
 send_string3("deneme\r\n");

 }
}