×¢²á µÇ¼  
 ¼Ó¹Ø×¢
ÎÂܰÌáʾ£¡ÓÉÓÚÐÂÀË΢²©ÈÏÖ¤»úÖÆµ÷Õû£¬ÄúµÄÐÂÀË΢²©ÕʺŰó¶¨ÒѹýÆÚ£¬ÇëÖØÐ°󶨣¡Á¢¼´ÖØÐ°ó¶¨ÐÂÀË΢²©¡·  |  ¹Ø±Õ

dp: Éú»îµÄ½Å²½£¬½ø²½µÄµãµÎ...

Cam¡¢DSP¡¢FPGA¡¢PM¡¢Life¡¢More ...

 
 
 

ÈÕÖ¾

 
 

microblaze gpioÖжϠ 

2012-12-13 14:06:59|  ·ÖÀࣺ רҵ |  ±êÇ©£º |¾Ù±¨ |×ֺŴóÖÐС ¶©ÔÄ

  ÏÂÔØLOFTER ÎÒµÄÕÕÆ¬Êé  |
#include "xparameters.h"
#include "xgpio_l.h"
#include "xintc.h"
#include "xgpio.h"

XIntc intc;
XGpio push_buttons;

int intc_cnt = 0;

void button_int_handler( void * basedder_p)

    xil_printf("Push_button interrupt occured %d .\r\n", intc_cnt++);
    XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,~intc_cnt);
    XGpio_InterruptClear(&push_buttons, 0xFFFF);
    XIntc_Acknowledge(&intc,XPAR_INTC_0_GPIO_1_VEC_ID);
}

void delay(int cnt)
{
    int i,j;
    for(i=0;i<cnt;i++)
        for(j=0;j<256;j++);
}

XStatus gpio_irq_init(void)
{
    XStatus Status;
    // initialize gpio
    XGpio_Initialize(&push_buttons, XPAR_PUSH_BUTTONS_DEVICE_ID);
    XGpio_SetDataDirection(&push_buttons, 10xFFFF); //set input
    XGpio_InterruptEnable(&push_buttons, 0xFFFF); //
    XGpio_InterruptGlobalEnable(&push_buttons);

    // initialize Interrupt controller 
    Status = XIntc_Initialize(&intc, (Xuint16)XPAR_INTC_0_DEVICE_ID);
    if (Status != XST_SUCCESS)
    {    return XST_FAILURE;    }
    Status = XIntc_SelfTest(&intc);
    if (Status != XST_SUCCESS)
    {    return XST_FAILURE;    }
    Status = XIntc_Connect(&intc, XPAR_INTC_0_GPIO_1_VEC_ID, (XInterruptHandler)button_int_handler, &push_buttons);
    if (Status != XST_SUCCESS)
    {    return XST_FAILURE;}
    Status = XIntc_Start(&intc, XIN_REAL_MODE);
    if (Status != XST_SUCCESS)
    {    return XST_FAILURE; }
    XIntc_Enable(&intc, XPAR_INTC_0_GPIO_1_VEC_ID);
    microblaze_enable_interrupts();

    return XST_SUCCESS;
}

int main (void)
{
    char m;
    //HSB:LSB <--> D7:D14, ÖÃ0µÆÁÁÖÃ1µÆÃð
    for(m=0;m<8;m++)
    {
        XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,~(1<<m));
        delay(10000);
    }

    gpio_irq_init();

    xil_printf("Push_button interrupt test start...\r\n");

    while(1)
    {
    }
}

  ÆÀÂÛÕâÕÅ
 
ÔĶÁ(752)| ÆÀÂÛ(0)
ÍÆ¼ö

ÀúÊ·ÉϵĽñÌì

ÆÀÂÛ

<#--×îÐÂÈÕÖ¾£¬Èº²©ÈÕÖ¾--> <#--ÍÆ¼öÈÕÖ¾--> <#--ÒýÓüǼ--> <#--²©Ö÷ÍÆ¼ö--> <#--Ëæ»úÔĶÁ--> <#--Ê×Ò³ÍÆ¼ö--> <#--ÀúÊ·ÉϵĽñÌì--> <#--±»ÍƼöÈÕÖ¾--> <#--ÉÏһƪ£¬ÏÂһƪ--> <#-- ÈÈ¶È --> <#-- ÍøÒ×ÐÂÎÅ¹ã¸æ --> <#--ÓÒ±ßÄ£¿é½á¹¹--> <#--ÆÀÂÛÄ£¿é½á¹¹--> <#--ÒýÓÃÄ£¿é½á¹¹--> <#--²©Ö÷·¢ÆðµÄͶƱ-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ò³½Å

ÍøÒ×¹«Ë¾°æÈ¨ËùÓР©1997-2018