[matlab] EDK学习总结---XGPIO3

[复制链接]
 楼主| 星星之火红 发表于 2012-10-18 21:09 | 显示全部楼层 |阅读模式
xgpio, ip, TI, ck, AD
五个GPIO的例子研究
NO1
#include "xparameters.h"
#include "xgpio.h"
#include "xgpio_l.h"
#include "xutil.h"
int main (void)
{
   XGpio dip, push;



       int i, psb_check, dip_check;
       XGpio LEDs8_Bit;
printf("-- Start of the Program --\r\n");
XGpio_Initialize(&dip, XPAR_DIP_DEVICE_ID); // device ID号的定义规则
       XGpio_SetDataDirection(&dip, 1, 0xffffffff);          // 必须注明通道号,否则出错
       XGpio_Initialize(&push, XPAR_PUSH_DEVICE_ID);  
       XGpio_SetDataDirection(&push, 1, 0xffffffff);
       XGpio_Initialize(&LEDs8_Bit, XPAR_LEDS_8BIT_DEVICE_ID);
       XGpio_SetDataDirection(&LEDs8_Bit, 1, 0x0);

       while (1)
       {
       psb_check = XGpio_DiscreteRead(&push, 1);
       xil_printf("Push Buttons Status %x\r\n", psb_check);   // /n会使超级终端斜着显示
       dip_check = XGpio_DiscreteRead(&dip, 1);
       xil_printf("DIP Switch Status %x\r\n", dip_check);     // /r/n 会使正常往下显示
       XGpio_DiscreteWrite(&LEDs8_Bit, 1, dip_check);   
       for (i=0; i<999999; i++);
       }
}
NO2
#define GPIO_INPUT_SWITCH1     0xffffffff      
#define GPIO_OUTPUT_LED_FAULT 0x00010000  
#define GPIO_OUTPUT_LED_POWER 0x00020000
#include "xbasic_types.h"
#include "xstatus.h"
#include "xparameters.h"
#include "xgpio.h"  
#include "xgpio_l.h"
#include "xutil.h"
int main (void)
{
   Xuint32 Data;
   XStatus Status;
XGpio dip, push;
int i, psb_check, dip_check;
       XGpio LEDs8_Bit;
printf("-- Start of the Program --\r\n");
       XGpio_Initialize(&push, XPAR_PUSH_DEVICE_ID);
       XGpio_SetDataDirection(&push, 1, 0xffffffff);
       XGpio_Initialize(&LEDs8_Bit, XPAR_LEDS_8BIT_DEVICE_ID);
       XGpio_SetDataDirection(&LEDs8_Bit, 1, 0x0);

       Status = XGpio_Initialize(&dip, XPAR_DIP_DEVICE_ID);
    if (Status != XST_SUCCESS)    //    XStatus Status为嵌入式中状态的定义关键字
    {
        printf("000\n");
    }
    else
       {
        printf("111\n");
    }
XGpio_SetDataDirection(&dip,1,GPIO_INPUT_SWITCH1);
XGpio_DiscreteSet     (&dip,1,GPIO_OUTPUT_LED_POWER);
XGpio_DiscreteClear   (&dip,1,GPIO_OUTPUT_LED_FAULT);

while (1)
{
      Data = XGpio_DiscreteRead(&dip,1);   //检测按键是否被按下
      xil_printf("Data=%x\r\n",Data);
      if (Data & GPIO_INPUT_SWITCH1) { xil_printf("111\r\n"); } //有按下
        
      else { xil_printf("222\r\n");} // /r/n                         //没按下
       for (i=0; i<9999999; i++);
}
gaochy1126 发表于 2012-10-18 21:51 | 显示全部楼层
还没有研究到这一步呢,先看一看吧!
GoldSunMonkey 发表于 2012-10-20 14:00 | 显示全部楼层
还没有研究到这一步呢,先看一看吧!
gaochy1126 发表于 2012-10-18 21:51
还有你没有研究到的?
wmsk 发表于 2012-10-20 20:04 | 显示全部楼层
:lol猴哥,讲讲
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝
快速回复 在线客服 返回列表 返回顶部

101

主题

1782

帖子

22

粉丝
快速回复 在线客服 返回列表 返回顶部