__interrupt void USART1RX_ISR (void) { debugpins_isr_set(); if (uart_isr_rx()==1) { // UART: RX __bic_SR_register_on_exit(CPUOFF); } debugpins_isr_clr(); }
void main() { uart_init(9600); // set BAUD-rate uart_isr_rx(1); // enable the ISR vt_init(); // initialize uart_ansi library vt_set_key_handler(&key_handler); // assign our custom handler sei(); put_str_P(uart, PSTR("UART key handler test!\r\n")); while(1); }
void isr() { unsigned int irqs; cpustats_enter(); irqs = irq_pending() & irq_getmask(); if(irqs & IRQ_UARTRX) uart_isr_rx(); if(irqs & IRQ_UARTTX) uart_isr_tx(); if(irqs & IRQ_TIMER0) time_isr(); if(irqs & IRQ_AC97CRREQUEST) snd_isr_crrequest(); if(irqs & IRQ_AC97CRREPLY) snd_isr_crreply(); if(irqs & IRQ_AC97DMAR) snd_isr_dmar(); if(irqs & IRQ_AC97DMAW) snd_isr_dmaw(); if(irqs & IRQ_PFPU) pfpu_isr(); if(irqs & IRQ_TMU) tmu_isr(); if(irqs & IRQ_USB) usb_isr(); cpustats_leave(); }