📄 dsp280x_gpio.c
字号:
// TI File $Revision: /main/2 $
// Checkin $Date: December 2, 2004 11:50:58 $
//###########################################################################
//
// FILE: DSP280x_Gpio.c
//
// TITLE: DSP280x General Purpose I/O Initialization & Support Functions.
//
//###########################################################################
// $TI Release: DSP280x V1.10 $
// $Release Date: April 18, 2005 $
//###########################################################################
#include "DSP280x_Device.h" // DSP280x Headerfile Include File
#include "DSP280x_Examples.h" // DSP280x Examples Include File
//---------------------------------------------------------------------------
// InitGpio:
//---------------------------------------------------------------------------
// This function initializes the Gpio to a known (default) state.
//
// For more details on configuring GPIO's as peripheral functions,
// refer to the individual peripheral examples and/or GPIO setup example.
void InitGpio(void)
{
EALLOW;
// Each GPIO pin can be:
// a) a GPIO input/output
// b) peripheral function 1
// c) peripheral function 2
// d) peripheral function 3
// By default, all are GPIO Inputs
GpioCtrlRegs.GPAMUX1.all = 0x0000; // GPIO functionality GPIO0-GPIO15
GpioCtrlRegs.GPAMUX2.all = 0x0000; // GPIO functionality GPIO16-GPIO31
GpioCtrlRegs.GPBMUX1.all = 0x0000; // GPIO functionality GPIO32-GPIO34
GpioCtrlRegs.GPADIR.all = 0x0000; // GPIO0-GPIO31 are GP inputs
GpioCtrlRegs.GPBDIR.all = 0x0000; // GPIO32-GPIO34 are inputs
// Each input can have different qualification
// a) input synchronized to SYSCLKOUT
// b) input qualified by a sampling window
// c) input sent asynchronously (valid for peripheral inputs only)
GpioCtrlRegs.GPAQSEL1.all = 0x0000; // GPIO0-GPIO15 Synch to SYSCLKOUT
GpioCtrlRegs.GPAQSEL2.all = 0x0000; // GPIO16-GPIO31 Synch to SYSCLKOUT
GpioCtrlRegs.GPBQSEL1.all = 0x0000; // GPIO32-GPIO34 Synch to SYSCLKOUT
// Pull-ups can be enabled or disabled.
GpioCtrlRegs.GPAPUD.all = 0x00000fff; // Pullup's enabled GPIO0-GPIO31 除gpio0-11 epwm外
GpioCtrlRegs.GPBPUD.all = 0x0000; // Pullup's enabled GPIO32-GPIO34
//GpioCtrlRegs.GPAPUD.all = 0xFFFF; // Pullup's disabled GPIO0-GPIO31
//GpioCtrlRegs.GPBPUD.all = 0xFFFF; // Pullup's disabled GPIO32-GPIO34
EDIS;
}
void InitLogicIO(void)
{
int16 i;
EALLOW;
//输出: 1初始状态
GpioDataRegs.GPASET.bit.GPIO17=1; //run relay //上电上拉到高,不闭合
GpioDataRegs.GPASET.bit.GPIO14=1; // dsp p //初始化不保护
GpioDataRegs.GPASET.bit.GPIO12=1; // le dc //上电即上拉到高,关闭pwm
GpioDataRegs.GPASET.bit.GPIO13=1; //le ac
GpioDataRegs.GPASET.bit.GPIO16=1; //fan off
GpioDataRegs.GPACLEAR.bit.GPIO26=1; //run led off
GpioDataRegs.GPASET.bit.GPIO25=1; //4094 clk //high
GpioDataRegs.GPASET.bit.GPIO19=1; //4094 data //1
GpioDataRegs.GPACLEAR.bit.GPIO30=1; //4094 str //low disable
GpioDataRegs.GPBSET.bit.GPIO32=1; //24c16 data //1
GpioDataRegs.GPBSET.bit.GPIO33=1; // 24c16 clk //1
GpioCtrlRegs.GPADIR.all=0x420b7000;
GpioCtrlRegs.GPBDIR.all=0x3;
//输入
GpioCtrlRegs.GPADIR.bit.GPIO20=0; //F2
GpioCtrlRegs.GPADIR.bit.GPIO21=0; //F1
GpioCtrlRegs.GPADIR.bit.GPIO22=0; //F0
GpioCtrlRegs.GPADIR.bit.GPIO23=0; //Fault
GpioCtrlRegs.GPADIR.bit.GPIO24=0; //开关机信号switch
GpioCtrlRegs.GPAPUD.bit.GPIO31=1; //disable pullup
GpioCtrlRegs.GPADIR.bit.GPIO31=0; //BTN //key
//输入鉴定:忽略100ns*6以内的干扰
GpioCtrlRegs.GPACTRL.bit.QUALPRD2=0x5; //鉴定周期:10ns*10
GpioCtrlRegs.GPAQSEL2.bit.GPIO20=2; //使能6周期鉴定
GpioCtrlRegs.GPAQSEL2.bit.GPIO21=2;
GpioCtrlRegs.GPAQSEL2.bit.GPIO22=2;
GpioCtrlRegs.GPAQSEL2.bit.GPIO23=2;
GpioCtrlRegs.GPAQSEL2.bit.GPIO24=2;
GpioCtrlRegs.GPAQSEL2.bit.GPIO31=2; //BTN key
//EI延时后的初始化,0为保护功能有效,其是否封锁epwm需根据输入状态决定。1为硬件上电初始化,封锁epwm
for(i=0;i<30000;i++)
{
asm("nop");
}
GpioDataRegs.GPACLEAR.bit.GPIO15=1; //EI
GpioCtrlRegs.GPADIR.bit.GPIO15=1;
EDIS;
}
//===========================================================================
// End of file.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -