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

📄 led.c

📁 TMS320F2808 DSP芯片的接口控制源码
💻 C
字号:
#include "DSP280x_Device.h"     // DSP280x Headerfile Include File
#include "DSP280x_Examples.h"   // DSP280x Examples Include File

void	SetData(Uint16	num)
{
	if (num)
		GpioDataRegs.GPADAT.bit.GPIO20 = 1;
	else
		GpioDataRegs.GPADAT.bit.GPIO24 = 1;	
}
void	ClrData(Uint16	num)
{
	if (num)
		GpioDataRegs.GPADAT.bit.GPIO20 = 0;
	else
		GpioDataRegs.GPADAT.bit.GPIO24 = 0;	
}

void	SetClk(Uint16	num)
{
	if (num)
		GpioDataRegs.GPADAT.bit.GPIO22 = 1;
	else
		GpioDataRegs.GPADAT.bit.GPIO26 = 1;	
}
void	ClrClk(Uint16	num)
{
	if (num)
		GpioDataRegs.GPADAT.bit.GPIO22 = 0;
	else
		GpioDataRegs.GPADAT.bit.GPIO26 = 0;	
}

void	SetCs(Uint16	num)
{
	if (num)
		GpioDataRegs.GPADAT.bit.GPIO19 = 1;
	else
		GpioDataRegs.GPADAT.bit.GPIO17 = 1;	
}

void	ClrCs(Uint16	num)
{
	if (num)
		GpioDataRegs.GPADAT.bit.GPIO19 = 0;
	else
		GpioDataRegs.GPADAT.bit.GPIO17 = 0;	
}

void	SendData(Uint16	num,Uint16 data)
{
	Uint16	i,Temp;
	Temp = 0x80;
	for	(i=0;i<8;i++)
		{
			if ((data & Temp)==0)	ClrData(num);
			else	SetData(num);
			Temp >>= 1;
			ClrClk(num);
			SetClk(num);
		}
	ClrCs(num);
	SetCs(num);	
	SetData(num);		
}


Uint16	ScanKey(void)
{
	Uint16	temp,temp1;
	Uint16  flag = 0;
	while(flag==0)
	{
		temp = GpioDataRegs.GPADAT.all;
		temp = temp & 0xfff;
		while(temp==0xfff)
		{
			temp = GpioDataRegs.GPADAT.all;
			temp = temp & 0xfff;
		}
		delay(2000);
		temp = GpioDataRegs.GPADAT.all;			
		temp = temp & 0xfff;
		temp1 = temp;
		if (temp == 0xff) flag = 0;
		else  flag = 1;		    
	}
	temp = GpioDataRegs.GPADAT.all;
	temp = temp & 0xfff;
	while( temp != 0xfff)
	{
		temp = GpioDataRegs.GPADAT.all;
		temp = temp & 0xfff;
	}
	return(temp1);		    			
}


void	delay(Uint32  num)
		{
			volatile  Uint32  i;
			for (i=0;i<num;i++) { ; }				
		}	

void	KeyFunction(Uint16	Temp)
		{
			switch(Temp)
				{
					case  K1: {
								KeyAck();
							  }
							  break;
					case  K2: {
								KeyAck();
							  }
							  break;
					case  K3: {
								KeyAck();
							  }
							  break;
					case  K4: {
								KeyAck();
							  }
							  break;
					case  K5: {
								KeyAck();
							  }
							  break;
					case  K6: {
								KeyAck();	
							  }
							  break;
					case  K7: {
								KeyAck();
							  }
							  break;
					case  K8: {
								KeyAck();
							  }	 		 
							  break; 			  
					default:  
							  break;
			}				  				  			  				   			  			  			   		
		}
		
void	KeyAck(void)
		{
			SendData(0,0x00);
			delay(500000);
			SendData(0,0xff);
		}				

//============================== no more ====================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -