#include "system.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h" #include "altera_avalon_timer_regs.h" alt_u8 led = 0; static void timer_interrupts(void* context, alt_u32 id) { IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0);
if(led==7) led=0; else led=led+1; } int main () { alt_irq_register(TIMER_IRQ, (void*) &led, timer_interrupts);
(上面这句报错,在building的时候,其实我也没完全理解这句的意思,能帮我解释一下最好) IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, 0x20); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, 0xBE); IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE, 7); while (1) { switch(led) { case 0: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x01); case 1: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x02); case 2: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x04); case 3: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x08); case 4: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x10); case 5: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x20); case 6: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x40); case 7: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x80); default: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x01); } } return 0; } |