GPIO程序
bigao
•
•
嵌软技术文章 •
438 阅读
-
- #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;
- }
-
-