Hi all,
I am developing program for UART0 with Interrupt. #include "def.h" #include "option.h" #include "2440addr.h" void uart_init(void); void uart_transmit(void); void uart_interrupt_init(void); void dely(U32 tt); static void __irq Uart0RxInt(void);
char data,flag=0;
static void __irq Uart0RxInt(void) { INTSUBMSK = 0xFFFFFFFF; SUBSRCPND = 0x1; SRCPND |= 0x10000000; INTPND = 0x10000000;
data = rURXH0; data = 'A'; flag = 1;
GPBDAT=0xFFFFFFFF; dely(12); GPBDAT=0x00000000; dely(12);*/
}
void dely(U32 tt) { U32 i; for(;tt>0;tt--) { for(i=0;i<10000;i++){} } }
int Main(int argc, char **argv) { int i; U8 key; U32 mpll_val=0; int data; unsigned int k,l;
mpll_val = (92<<12)|(1<<4)|(1);
MMU_DisableICache(); MMU_DisableDCache();
GPBCON = 0x155555; GPHCON |= 0xAA; uart_init(); uart_interrupt_init(); while(1) { while(flag!=1); uart_transmit(); flag=0; } INTSUBMSK = 0xFFFFFFFF; INTMSK = 0xFFFFFFFF;
void uart_init(void) { ULCON0 |= 0x00000003; UCON0 |= 0x00000005; UMCON0 = 0x00; UFCON0 = 0x00; UBRDIV0=329; // 9600 //UBRDIV0=27; // 115200 }
void uart_interrupt_init(void) { pISR_UART0 = (unsigned int)Uart0RxInt; SUBSRCPND = 0x1; SRCPND = (1<<28); INTPND = (1<<28); INTSUBMSK = 0xFFFFFFFE; INTMSK = 0xEFFFFFFF;
void uart_transmit(void) { while((UTRSTAT0&0x00000002)==0); UTXH0=data; }
when i download the code & run, it gives Dummy_isr error. please help me
You can look at example in folder \ARM\Boards\Clabsys\LN2440SCB\Blinky for reference. That is an example for Samsung S3C2440 and it uses timer interrupt.
View all questions in Keil forum