程序应该实现按一下键相应的LED就亮,但是按下后灯没有反应,LED为低电平有效.
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "sys/alt_irq.h"
#include "alt_types.h"
volatile int led;
static void handle_button_interrupt(void *context,alt_u32 id)
{
volatile int* edge_capture_ptr=(volatile int*)context;
*edge_capture_ptr=IORD_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE);
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led);
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE,0);
}
int main (void) __attribute__ ((weak, alias ("alt_main")));
int alt_main(void)
{
led=0;
while(1)
{
void *edge_capture_ptr=(void *)&led;
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE,0);
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTON_PIO_BASE,0xf);
alt_irq_register(BUTTON_PIO_IRQ,
edge_capture_ptr,
handle_button_interrupt);
}
return 0;
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |