Hai,
Actually polling method i have done know i am trying to interrupt method it is not going to ISR routine?
Main Code:-
int main(void)
{
uint8_t data=0;
volatile uint16_t i=0,j=0,k;
EVMC6748_init();
// Initialization of Modules
PINMUX_init();
// EMIFA_init(); //Chip Select
gpio_regs_t *GP10 = (gpio_regs_t*)BANK_base_addr01;
gpio_regs_t *GP32 = (gpio_regs_t*)BANK_base_addr23;
gpio_regs_t *GP76 = (gpio_regs_t*)BANK_base_addr67;
gpio_regs_t *GP08 = (gpio_regs_t*)BANK_base_addr80;
//UART_init(DEBUG_PORT,115200);
CLRBIT(GP10->DIR ,GPIO_OUTPUT3); // configuring EX1 pin as output
CLRBIT(GP10->DIR ,GPIO_OUTPUT4); // configuring EX2 pin as output
CLRBIT(GP32->DIR ,GPIO_OUTPUT5); // configuring EX3 pin as output
CLRBIT(GP08->DIR ,GPIO_OUTPUT6); // configuring EX4 pin as output
CLRBIT(GP10->DIR ,GPIO_OUTPUT7); // configuring EX5 pin as output
CLRBIT(GP76->DIR ,GPIO_OUTPUT8); // configuring EX6 pin as output
SETBIT(GP32->DIR ,GPIO_INPUT1); // configuring EX7 pin as input
SETBIT(GP08->DIR ,GPIO_INPUT2); // configuring EX8 pin as input
CLRBIT(GP08->DIR ,GPIO_OUTPUT9); // configuring LED pin as output
CLRBIT(GP76->DIR ,GPIO_OUTPUT3); // configuring NANDC pin as output
SETBIT(GP76->SET_DATA ,GPIO_OUTPUT3);
/*--------------------------------------------------------------------------------------------------*/
flag=1;
ISTP = (unsigned int)intcVectorTable;
uint16_t *src = (uint16_t*) UART1_REG_BASE;
uint16_t *src3 = (uint16_t*)0x01800104;
*src = 0x9;
*src3 = 0x0000004; //selecting interrupt 4 in intmux reg
SETBIT(CSR ,0x14000010); //Disable Global Interrupt
UART_init(DEBUG_PORT,115200);
SETBIT(IER,0x00000013) ; // enable INT4 as CPU interrupt
while(1)
{
if(flag==1)
{
SETBIT(CSR ,0x00000003); //Global Interrupt enable
flag=0;
}
}
}
interrupt void uart1_isr(void)
{
uint8_t data=0;
SETBIT(CSR ,0x14000010); //Disable Global Interrupt
UART_txString(DEBUG_PORT,"\n\rEnter the character\n\r");
UART_rxByte(DEBUG_PORT, &data);
flag=1;
}
UART_init code:-
uint32_t UART_init(uart_regs_t *uart, uint32_t baud_rate)
{
uint32_t divisor;
// put xmtr/rcvr in reset.
uart->PWREMU_MGMT = 0;
// set baud rate...assumes default 16x oversampling.
divisor = SYSCLOCK2_HZ / (baud_rate * 16);
uart->DLH = (divisor & 0x0000FF00) >> 8;
uart->DLL = divisor & 0x000000FF;
// enable xmtr/rcvr fifos.
uart->FCR = 0;
SETBIT(uart->FCR, FIFOEN);
SETBIT(uart->FCR, RXCLR | TXCLR | DMAMODE1);
// disable interrupts, flow control, and loop back.
// uart->IER = 0;
SETBIT(uart->IER, 0x00000005); // Enable UART1 Interrupts (Receive & Transmit)
uart->MCR = 0;
uart->MDR = 0;
// config LCR for no parity, one stop bit, 8 data bits, no flow control.
uart->LCR = 0;
SETBIT(uart->LCR, WLS_8);
// take xmtr/rcvr out of reset.
SETBIT(uart->PWREMU_MGMT, UTRST | URRST | FREE);
return(ERR_NO_ERROR);
}