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

📄 soft.h

📁 经过改进之后的CAN-USB接口卡固件程序
💻 H
字号:
//输出数据
void outportb(UINT addr, UINT data)
{	
	if(addr == D12_DATA_SOFT)
	{
		PTM_PTM7 = 0;
		PORTB_BIT0 = 0;
	}
	else
	{
		PTM_PTM7 = 1;
		PORTB_BIT0 = 1;
	}
	
	DDRA = 0xFF;
	PORTA = data;
	
	D12_WR_0
	D12_WR_1
}

//输入数据
UINT inportb(UINT addr)
{	
	UINT rt;
	
	if(addr == D12_DATA_SOFT)
	{
		PTM_PTM7 = 0;
		PORTB_BIT0 = 0;
	}
	else
	{
		PTM_PTM7 = 1;
		PORTB_BIT0 = 1;
	}
	
	DDRA = 0x00;	
	D12_RD_0	
	D12_RD_1
	rt = PORTA;
	
	return rt;
}

UINT D12_ReadChipID_Soft()
{
	UINT i,j;

	outportb(D12_COMMAND, 0xFD);
	i=inportb(D12_DATA_SOFT);
	j=inportb(D12_DATA_SOFT);
	i = (0x00FF & i) + (0xFF00 & (j<<8));
	
	return i;
}

//模式设置
void D12_SetMode_Soft(UINT bConfig, UINT bClkDiv)
{
	outportb(D12_COMMAND, 0xF3);//设置模式
	outportb(D12_DATA_SOFT, bConfig);
	outportb(D12_DATA_SOFT, bClkDiv);
}

void Soft_Init()
{
	//软时序初始化 
		//PORTM
	DDRM_DDRM6 = 1;//输出
	DDRM_DDRM7 = 1;//输出
	
	// DMA传输 PORTH
	DDRH_DDRH0 = 0;//输入
	DDRH_DDRH1 = 1;//输出
	DDRH_DDRH2 = 1;//输出
	
	// LED显示端口 POTRP
	DDRP = 0xFF;//输出
	
	DDRA = 0xFF;
	DDRB = 0xFF;
	DDRE = 0xFF;
	PEAR_NECLK = 1;	
	PEAR_RDWE = 0;
	
	D12_SetMode_Soft(0x02,0x42);
	Delay(10000);
    if(D12_ReadChipID_Soft() != 0x1012)
	{
		Set_LED(0x55);
		while(1);//设置时钟出错!
	}
	Set_LED(0x00);
}

⌨️ 快捷键说明

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