Ñ¡Ôñinput ports only£¬µã»÷next³öÏÖÈçϽçÃæ¡£
ͼÖÐGenerate IRQΪ²úÉúÖжϣ¬¼´¸Ã¶Ë¿Ú¾ßÓÐÖжϵŦÄÜ¡£Level ΪÖжϵÄÀàÐÍ£¬µçƽÖжÏEdgeΪ±ßÑØÖжϣ¬Ñ¡ÔñµçƽÖжϣ¬×¢Ò⣺µçƽÖжÏĬÈÏÊÇ¸ßµçÆ½ÓÐЧ£¬µã»÷Finish¡£
½Ó×ÅÔÙÅäÖÃÒ»¸öÖ»Êä³öµÄÒý½ÅÀ´ÑéÖ¤ÊÇ·ñ½øÈëÖжϣ¬ÅäÖ÷½·¨ºÍʵÑéÒ»µÄÊÇÏàͬµÄ¡£½Ó×Å×Ô¶¯·ÖÅä»ùµØÖ·£¬ÖжÏÓÅÏȼ¶¿ÉÊÖ¶¯Ð޸ġ£È»ºóµã»÷GenerateÉú³ÉÈíºË¡£
½Ó×ÅÔÚQuartus ii Öе÷ÓÃÈíºË½øÐÐÈçÏÂÁ¬½Ó¡£
½Ó×űàÒ빤³Ì£¬²¢½«Î´Óõ½µÄ¶Ë¿ÚÉèÖÃΪÈý̬ÊäÈë¡£ÉèÖ÷½·¨¼ûͼ3-1Ëùʾ¡£·ÖÅäÒý½Å£¬ÔٴαàÒ빤³Ì£¬½áÊøºó½«³ÌÐòÏÂÔØµ½fpgaÖС£ ´ò¿ªNios iiÈí¼þ£¬°´ÕÕʵÑé1µÄ²½Öè½øÐÐÉèÖ㬴ò¿ªÈí¼þÒԺ󽫳öÏÖ3-2ËùʾµÄ½çÃæ¡£Ê×ÏȱàÒ빤³Ì£¬½Ó׎«ÔÚSystem.hÖпÉÒÔ¿´¼ûÈçϳÌÐò
#define INTRERR_NAME \ #define INTRERR_TYPE \ #define INTRERR_BASE 0x01001000 #define INTRERR_SPAN 16 #define INTRERR_IRQ 1
#define INTRERR_IRQ_INTERRUPT_CONTROLLER_ID 0 #define INTRERR_DO_TEST_BENCH_WIRING 0 #define INTRERR_DRIVEN_SIM_VALUE 0 #define INTRERR_HAS_TRI 0 #define INTRERR_HAS_OUT 0 #define INTRERR_HAS_IN 1 #define INTRERR_CAPTURE 0 #define INTRERR_DATA_WIDTH 1 #define INTRERR_RESET_VALUE 0 #define INTRERR_EDGE_TYPE \ #define INTRERR_IRQ_TYPE \
#define INTRERR_BIT_CLEARING_EDGE_REGISTER 0
¿ÉÒÔ¿´¼ûINTRERR_IRQ 1Óëͼ4-1ÖÐËùʾµÄINTRERRµÄÖжÏÓÅÏȼ¶Ò»
ÑùµÄ£¬¶¼Îª1¡£½ÓÏÂÀ´½²½âÒ»ÏÂNios iiµÄÓ²¼þÖжϣ¬Ê×ÏȽéÉÜÒ»ÏÂÓëÓ²¼þÖжÏÏà¹ØµÄÄÚÈÝ£¬ÈÃÓû§¶Ô Nios ii µÄÓ²¼þÖжÏÓÐÒ»¸ö¸ÅÀ¨ÐÔµÄÁ˽⡣
ISR(Interrupt Service Routine)ÖжϷþÎñº¯ÊýÊÇΪӲ¼þÖжϷþÎñµÄ×Ó³ÌÐò¡£Nios ii´¦ÀíÆ÷Ö§³Ö32 ¸öÓ²¼þÖжϣ¬Ã¿Ò»¸öʹÄÜÁ˵ÄÓ²¼þÖж϶¼Ó¦¸ÃÓÐÒ»¸öISRÓëÖ®¶ÔÓ¦¡£
ÖжϲúÉúʱ£¬Ó²¼þÖжϴ¦ÀíÆ÷»á¸ù¾Ý¼ì²âµ½µÄÓÐЧÖжϼ¶±ð£¬µ÷ÓÃÏàÓ¦µÄ ISRΪÆäÖжϷþÎñ¡£
ÒªÍê³ÉÓ²¼þÖжϹ¤×÷£¬ÐèÒª×öÁ½¼þÊ£º
µÚÒ»£¬×¢²áÖжϺ¯ÊýISR,ËüµÄÔº¯ÊýÐÍÈçÏÂËùʾ£º Int
alt_irq_register(alt_u32
id,
void*
context,
void(*handler)
(void*,alt_u32));
id£ºÖжÏÓÅÏȼ¶£¬¼´Ëù×¢²áµÄISRÊÇΪÄĸöÖжÏÓÅÏȼ¶µÄÖжϷþÎñµÄ¡£ÖжÏÓÅÏȼ¶ÔÚ SOPC Builder ÖзÖÅäµÄ£¬ÈçÏÂͼËùʾºìȦ±êʾ¡£ ÖжϵÄÓÅÏȼ¶¿ÉÈËΪÐ޸ģ¬0µÄÓÅÏȼ¶×î¸ß¡£