Чего там поднимать?
#pragma vector=IRQV __irq __arm void irq_handler(void) { void (*interrupt_function)(); unsigned int vector; vector = VICVectAddr; // Get interrupt vector. interrupt_function = (void(*)())vector; (*interrupt_function)(); // Call vectored interrupt function. VICVectAddr = 0; // Clear interrupt in VIC. } void LPC21xxInitInterrupt( void ) { // Assign all interrupt chanels to IRQ VICIntSelect = 0; // Diasable all interrupts VICIntEnClear = 0xFFFFFFFF; // Clear all software interrutps VICSoftIntClear = 0xFFFFFFFF; // VIC registers can be accessed in User or privileged mode VICProtection = 0; // Clear interrupt VICVectAddr = 0; // Clear address of the Interrupt Service routine (ISR) for non-vectored IRQs. VICDefVectAddr = 0; // Clear address of the Interrupt Service routine (ISR) for vectored IRQs. VICVectAddr0 = \ VICVectAddr1 = \ VICVectAddr2 = \ VICVectAddr3 = \ VICVectAddr4 = \ VICVectAddr5 = \ VICVectAddr6 = \ VICVectAddr7 = \ VICVectAddr8 = \ VICVectAddr9 = \ VICVectAddr10 = \ VICVectAddr11 = \ VICVectAddr12 = \ VICVectAddr13 = \ VICVectAddr14 = \ VICVectAddr15 = 0; // Disable all vectored IRQ slots VICVectCntl0 = \ VICVectCntl1 = \ VICVectCntl2 = \ VICVectCntl3 = \ VICVectCntl4 = \ VICVectCntl5 = \ VICVectCntl6 = \ VICVectCntl7 = \ VICVectCntl8 = \ VICVectCntl9 = \ VICVectCntl10 = \ VICVectCntl11 = \ VICVectCntl12 = \ VICVectCntl13 = \ VICVectCntl14 = \ VICVectCntl15 = 0; VICIntSelect &= ~(1<<VIC_UART0); // IRQ on UART0 line. VICVectAddr1 = (unsigned long)Uart0Interrupt; // Channel 1 of VIC - UARTO interrupt VICVectCntl1 = 0x20 | VIC_UART0; // Enable vector interrupt for UART0 on channel 1 and set his type. VICIntEnable |= (1<<VIC_UART0); // Enable UART0 interrupt. } void Uart0Interrupt( void ) { unsigned char t; TransmitByte( ReceiveByte() ); t = U0IIR; } void UART_init( void ) { // 115200 U0LCR = 0x83; U0DLL = 40; U0DLM = 0; U0LCR &= ~0x80; PINSEL0 |= 0x5; // Âêë. RxD TxD ôóíêöèè ïèíîâ U0FCR = 0x01; U0IER = 0x01; }и усе
-
- СПАСИБО! буду пробовать - igor_m(24.08.2006 21:26, )