⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 合众达2812开发例程
💻 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 + -