下面是我写的代码: #include "stdio.h" #include "altera_avalon_pio_regs.h" #include "sys/alt_irq.h" #include "system.h" #include "alt_types.h"
volatile int temp; volatile int data;
void handle_buttom_interrupt(void) { data=IORD_ALTERA_AVALON_PIO_EDGE_CAP(BUTTOM_4_BASE); //IOWR_ALTERA_AVALON_PIO_EDGE_CAP(LED_BASE,data); printf("LAST_TEMP=%d",temp); if(temp!=data) { temp=data; printf("NOW_TEMP= %d\n",temp); } IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTOM_4_BASE,0X00); //IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTOM_4_BASE,0X00); //IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTOM_4_BASE,0XFF); }
int main(void) { //volatile int k; printf("WAITING......\n"); alt_irq_register(2,0,(void *)handle_buttom_interrupt); printf("WAITING......\n"); IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTOM_4_BASE,0XFF); while (1); } 1 .为什么不能检测到\电平的跳变? 2.在printf()函数中的" "中的内容长点的话为什么不能全部显示出来 如下面的: printf("dfjsdfjdsklhgkdfkmciydfhiceriufcrejcfrurecfuerkufcerux9erkwuf\n"); 显示的时候却出现了 dfjsdfjdsklhgkdfkmciydfhiceriufc 然后就出现了程序不运行了. 但是将""中的内容减小,程序就运行正常了(在边沿出发的情况下面是正常的,电平情况见上面的程序,不能正常运行) 在buttom_4的属性中我已经将它改成了电平格式. |