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

📄 io.c

📁 LPC213x系列启动代码,支持ADS1.2编译器,已成功运行
💻 C
字号:
#include "config.h"

UWORD uwXbit[DI_NUM];
UDWORD udXtick[DI_NUM];

struct struWordBit X;
struct struWordBit Y;

void ReadDin(void)
{
	UWORD tempOld,tempNew;
	CHAR i;
	
	// X00
	if(READ_X00_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X00_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[0]) 
		{
			if(udTickCount > udXtick[0] + SOFT_FILTER_TIME)
			{
				udXtick[0] = udTickCount;
				X00 = tempNew;
			}
		}
		else
		{
			udXtick[0] = udTickCount;
			uwXbit[0] = tempNew;
		}
	}
	else
	{
		udXtick[0] = udTickCount;
	}
	
	// X01	
	if(READ_X01_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X01_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[1]) 
		{
			if(udTickCount > udXtick[1] + SOFT_FILTER_TIME)
			{
				udXtick[1] = udTickCount;
				X01 = tempNew;
			}
		}
		else
		{
			udXtick[1] = udTickCount;
			uwXbit[1] = tempNew;
		}
	}
	else
	{
		udXtick[1] = udTickCount;
	}
	
	// X02
	if(READ_X02_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X02_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[2]) 
		{
			if(udTickCount > udXtick[2] + SOFT_FILTER_TIME)
			{
				udXtick[2] = udTickCount;
				X02 = tempNew;
			}
		}
		else
		{
			udXtick[2] = udTickCount;
			uwXbit[2] = tempNew;
		}
	}
	else
	{
		udXtick[2] = udTickCount;
	}
	
	// X03
	if(READ_X03_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X03_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[3]) 
		{
			if(udTickCount > udXtick[3] + SOFT_FILTER_TIME)
			{
				udXtick[3] = udTickCount;
				X03 = tempNew;
			}
		}
		else
		{
			udXtick[3] = udTickCount;
			uwXbit[3] = tempNew;
		}
	}
	else
	{
		udXtick[3] = udTickCount;
	}
	
	// X04
	if(READ_X04_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X04_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[4]) 
		{
			if(udTickCount > udXtick[4] + SOFT_FILTER_TIME)
			{
				udXtick[4] = udTickCount;
				X04 = tempNew;
			}
		}
		else
		{
			udXtick[4] = udTickCount;
			uwXbit[4] = tempNew;
		}
	}
	else
	{
		udXtick[4] = udTickCount;
	}
	/*
	// X05
	if(READ_X05_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X05_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[5]) 
		{
			if(udTickCount > udXtick[5] + SOFT_FILTER_TIME)
			{
				udXtick[5] = udTickCount;
				X05 = tempNew;
			}
		}
		else
		{
			udXtick[5] = udTickCount;
			uwXbit[5] = tempNew;
		}
	}
	else
	{
		udXtick[5] = udTickCount;
	}
	
	// X06
	if(READ_X06_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X06_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[6]) 
		{
			if(udTickCount > udXtick[6] + SOFT_FILTER_TIME)
			{
				udXtick[6] = udTickCount;
				X06 = tempNew;
			}
		}
		else
		{
			udXtick[6] = udTickCount;
			uwXbit[6] = tempNew;
		}
	}
	else
	{
		udXtick[6] = udTickCount;
	}
	
	// X07
	if(READ_X07_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X07_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[7]) 
		{
			if(udTickCount > udXtick[7] + SOFT_FILTER_TIME)
			{
				udXtick[7] = udTickCount;
				X07 = tempNew;
			}
		}
		else
		{
			udXtick[7] = udTickCount;
			uwXbit[7] = tempNew;
		}
	}
	else
	{
		udXtick[7] = udTickCount;
	}
	
	// X10
	if(READ_X10_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X10_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[8]) 
		{
			if(udTickCount > udXtick[8] + SOFT_FILTER_TIME)
			{
				udXtick[8] = udTickCount;
				X10 = tempNew;
			}
		}
		else
		{
			udXtick[8] = udTickCount;
			uwXbit[8] = tempNew;
		}
	}
	else
	{
		udXtick[8] = udTickCount;
	}
	
	// X11
	if(READ_X11_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X11_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[9]) 
		{
			if(udTickCount > udXtick[9] + SOFT_FILTER_TIME)
			{
				udXtick[9] = udTickCount;
				X11 = tempNew;
			}
		}
		else
		{
			udXtick[9] = udTickCount;
			uwXbit[9] = tempNew;
		}
	}
	else
	{
		udXtick[9] = udTickCount;
	}
	
	// X12
	if(READ_X12_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X12_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[10]) 
		{
			if(udTickCount > udXtick[10] + SOFT_FILTER_TIME)
			{
				udXtick[10] = udTickCount;
				X12 = tempNew;
			}
		}
		else
		{
			udXtick[10] = udTickCount;
			uwXbit[10] = tempNew;
		}
	}
	else
	{
		udXtick[10] = udTickCount;
	}
	
	// X13
	if(READ_X13_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X13_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[11]) 
		{
			if(udTickCount > udXtick[11] + SOFT_FILTER_TIME)
			{
				udXtick[11] = udTickCount;
				X13 = tempNew;
			}
		}
		else
		{
			udXtick[11] = udTickCount;
			uwXbit[11] = tempNew;
		}
	}
	else
	{
		udXtick[11] = udTickCount;
	}
	
	// X14
	if(READ_X14_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X14_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[12]) 
		{
			if(udTickCount > udXtick[12] + SOFT_FILTER_TIME)
			{
				udXtick[12] = udTickCount;
				X14 = tempNew;
			}
		}
		else
		{
			udXtick[12] = udTickCount;
			uwXbit[12] = tempNew;
		}
	}
	else
	{
		udXtick[12] = udTickCount;
	}
	
	// X15
	if(READ_X15_DATA()) tempOld = 1; else tempOld = 0;
	for(i = 0; i < SOFT_FILTER_NUM; i++)
	{
		if(READ_X15_DATA()) tempNew = 1; else tempNew = 0;
		if(tempNew != tempOld) break;
	}
	if(i == SOFT_FILTER_NUM)
	{
		if(tempNew == uwXbit[13]) 
		{
			if(udTickCount > udXtick[13] + SOFT_FILTER_TIME)
			{
				udXtick[13] = udTickCount;
				X15 = tempNew;
			}
		}
		else
		{
			udXtick[13] = udTickCount;
			uwXbit[13] = tempNew;
		}
	}
	else
	{
		udXtick[13] = udTickCount;
	}
	*/
}//void ReadDin(void)

void WriteDout(void)
{
	if(Y00) SET_Y00_HIGH(); else SET_Y00_LOW();
	if(Y01) SET_Y01_HIGH(); else SET_Y01_LOW();
	if(Y02) SET_Y02_HIGH(); else SET_Y02_LOW();
	if(Y03) SET_Y03_HIGH(); else SET_Y03_LOW();
	if(Y04) SET_Y04_HIGH(); else SET_Y04_LOW();
	if(Y05) SET_Y05_HIGH(); else SET_Y05_LOW();
	if(Y06) SET_Y06_HIGH(); else SET_Y06_LOW();
	if(Y07) SET_Y07_HIGH(); else SET_Y07_LOW();
	
	if(Y10) SET_Y10_HIGH(); else SET_Y10_LOW();
	if(Y11) SET_Y11_HIGH(); else SET_Y11_LOW();
}//void WriteDout(void)

⌨️ 快捷键说明

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