📄 main.c
字号:
/*************************************************************************
filename: main.c 测试开入/开出的主程序
designer: 黄黎明
date: 2004/12/21
*************************************************************************/
#include "DSP28_Device.h"
#include "DPS2812_CPLD.h"
void SetGPIO(void);
void delay(void);
void Bug1(void);
void Bug2(void);
unsigned int bit,value;
void main(void)
{
unsigned int i,k;
InitSysCtrl(); // Disable and clear all CPU interrupts:
DINT;
IER = 0x0000;
IFR = 0x0000;
SetGPIO();
GpioDataRegs.GPDDAT.bit.GPIOD0 = 1;
GpioDataRegs.GPDDAT.bit.GPIOD1 = 0; //使能DOUTEN
while(1)
{
GpioDataRegs.GPADAT.all = 0xffff;
GpioDataRegs.GPBDAT.all = 0xffff;
*CPLD_DIDO = 0x00ff;//初始化CPLD中的DO
delay();
for(i=0,bit=0xffef;i<=3;i++)
{
GpioDataRegs.GPADAT.all = bit;
delay();
switch(i)
{
case 0:
if(GpioDataRegs.GPBDAT.bit.GPIOB0==1)
Bug1();
if(*CPLD_DIDO==1)
Bug1();
break;
case 1:
if(GpioDataRegs.GPBDAT.bit.GPIOB1==1)
Bug1();
if(*CPLD_DIDO==1)
Bug1();
break;
case 2:
if(GpioDataRegs.GPBDAT.bit.GPIOB2==1)
Bug1();
break;
case 3:
if(GpioDataRegs.GPBDAT.bit.GPIOB3==1)
Bug1();
break;
}
bit = bit*2;
}
GpioDataRegs.GPADAT.all = 0xffff;
for(i=0,bit=0xefff;i<=3;i++)
{
GpioDataRegs.GPADAT.all = bit;
delay();
switch(i)
{
case 0:
if(GpioDataRegs.GPBDAT.bit.GPIOB4==1)
Bug1();
break;
case 1:
if(GpioDataRegs.GPBDAT.bit.GPIOB5==1)
Bug1();
break;
case 2:
if(GpioDataRegs.GPBDAT.bit.GPIOB6==1)
Bug1();
break;
case 3:
if(GpioDataRegs.GPBDAT.bit.GPIOB11==1)
Bug1();
break;
}
bit = bit*2;
}
GpioDataRegs.GPADAT.all = 0xffff;
for(i=0,bit=0x00fe;i<=7;i++)
{
*CPLD_DIDO = bit;
delay();
switch(i)
{
case 0:
if(GpioDataRegs.GPDDAT.bit.GPIOD5==1)
Bug2();
break;
case 1:
if(GpioDataRegs.GPDDAT.bit.GPIOD6==1)
Bug2();
break;
case 2:
if(*CPLD_DIDO!=0xfffe)
Bug2();
break;
case 3:
if(*CPLD_DIDO!=0xfffd)
Bug2();
break;
case 4:
if(*CPLD_DIDO!=0xfffb)
Bug2();
break;
case 5:
if(*CPLD_DIDO!=0xfff7)
Bug2();
break;
case 6:
if(*CPLD_DIDO!=0xffef)
Bug2();
break;
case 7:
if(*CPLD_DIDO!=0xffdf)
Bug2();
break;
}
bit = (bit<<1)+1;
}
*CPLD_DIDO = 0x00ff;
/*----------------- LED ------------------*/
GpioDataRegs.GPFDAT.all = 0x3f00;
*CPLD_SCR = 0x000f;
delay();
for(k=0,value=0x3e00;k<=5;k++)
{
GpioDataRegs.GPFDAT.all= value;
delay();
value = (value<<1)+0x100;
}
GpioDataRegs.GPFDAT.all = 0x3f00;
*CPLD_SCR = 0x000e;
delay();
*CPLD_SCR = 0x000d;
delay();
*CPLD_SCR = 0x000b;
delay();
*CPLD_SCR = 0x0007;
delay();
*CPLD_SCR = 0x000f;
}
}
void SetGPIO(void)
{
EALLOW;
GpioMuxRegs.GPAMUX.all=0x0000;
GpioMuxRegs.GPBMUX.all=0x0000;
GpioMuxRegs.GPDMUX.bit.T1CTRIP_PDPA_GPIOD0=0;
GpioMuxRegs.GPDMUX.bit.T2CTRIP_SOCA_GPIOD1=0;
GpioMuxRegs.GPDMUX.bit.T3CTRIP_PDPB_GPIOD5=0;
GpioMuxRegs.GPDMUX.bit.T4CTRIP_SOCB_GPIOD6=0;
GpioMuxRegs.GPFMUX.all=0x0000;
GpioMuxRegs.GPADIR.all=0xf0f0;
GpioMuxRegs.GPBDIR.all=0x0000;
GpioMuxRegs.GPDDIR.all=0x0003;
GpioMuxRegs.GPFDIR.all=0x3f00;
GpioMuxRegs.GPAQUAL.all=0;
GpioMuxRegs.GPBQUAL.all=0;
GpioMuxRegs.GPDQUAL.all=0;
GpioMuxRegs.GPEQUAL.all=0;
EDIS;
GpioDataRegs.GPDDAT.bit.GPIOD0 = 0;
GpioDataRegs.GPDDAT.bit.GPIOD1 = 1;
}
void delay(void)
{
int m,n;
for (m=0;m<5000;m++)
{
for (n=0;n<1000;n++)
{
}
}
}
void Bug1(void)
{
GpioDataRegs.GPADAT.all=0xffff;
delay();
GpioDataRegs.GPADAT.all=bit;
delay();
}
void Bug2(void)
{
*CPLD_DIDO = 0x00ff;
delay();
*CPLD_DIDO = bit;
delay();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -