原创 GPIO程序

2022-8-3 18:40 1170 8 8 分类: FPGA/CPLD 文集: 2022
  • #include "DSP28_Device.h"
  • #include "DSP28_Globalprototypes.h"
  • // Prototype statements for functions found within this file.
  • // interrupt void ISRTimer2(void);
  • void delay_loop(void);
  • void Gpio_select(void);
  • unsigned int var1 = 0;
  • unsigned int var2 = 0;
  • unsigned int var3 = 0;
  • unsigned int var4 = 0;
  • unsigned int var5 = 0;
  • void main(void)
  • {
  • int ii=0;
  • int i;
  • InitSysCtrl();
  • // Disable and clear all CPU interrupts:
  • DINT;
  • IER = 0x0000;
  • IFR = 0x0000;
  • // Initialize Pie Control Registers To Default State:
  • InitPieCtrl();
  • InitPieVectTable();
  • InitGpio();
  • // Run GPIO test
  • var1 = 0x0000; // sets GPIO Muxs as I/Os
  • var2 = 0xFFFF; // sets GPIO DIR as outputs
  • var3 = 0x0000; // sets the Input qualifier values
  • // Gpio_select();
  • // Toggle I/Os using DATA register for ever
  • while(1)
  • {
  • /*
  • GpioDataRegs.GPADAT.all = 0x000A;
  • for(ii = 0; ii < 100; ii++)
  • {
  • delay_loop();
  • }
  • GpioDataRegs.GPADAT.all = 0x0005;
  • delay_loop();
  • for(ii = 0; ii < 100; ii++)
  • {
  • delay_loop();
  • }
  • */
  • for(i = 0; i < 4; i++)
  • {
  • GpioDataRegs.GPADAT.all = 0x08 >> i;
  • for(ii = 0; ii < 50; ii++)
  • {
  • delay_loop();
  • }
  • GpioDataRegs.GPACLEAR.all = 0x08 >> i;
  • for(ii = 0; ii < 10; ii++)
  • {
  • //delay_loop();
  • }
  • }
  • }
  • }
  • void delay_loop()
  • {
  • short i;
  • for (i = 0; i < 5000; i++) {}
  • }
  • void Gpio_select(void)
  • {
  • EALLOW;
  • GpioMuxRegs.GPAMUX.all=var1;
  • // GpioMuxRegs.GPBMUX.all=var1;
  • GpioMuxRegs.GPADIR.all=var2; // GPIO PORTs as output
  • // GpioMuxRegs.GPBDIR.all=var2; // GPIO DIR select GPIOs as output
  • GpioMuxRegs.GPAQUAL.all=var3; // Set GPIO input qualifier values
  • // GpioMuxRegs.GPBQUAL.all=var3;
  • EDIS;
  • }
  • 复制代码
    PARTNER CONTENT

    文章评论0条评论)

    登录后参与讨论
    我要评论
    0
    8
    关闭 站长推荐上一条 /1 下一条