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

📄 lighttalk2.c

📁 LED的逆向应用:触摸感应-11.9M.zip
💻 C
字号:
#include	"LightTalk2.h"

void iniLeds()
{
	LEDS0DDR	=	0xff;
	LEDS1DDR	=	0xff;
	LEDS0VAL	=	0xff;
	LEDS1VAL	=	0xff;
	CTRLDDR		=	0xff;
	CTRLPORT	=	0xff;
}
void ledsTurnOn(INT2CHAR witch)
{	_ledsAnode_High(LEDS0);
	_ledsAnode_High(LEDS1);
	LEDS0VAL	=	witch.i8[0];
	LEDS1VAL	=	witch.i8[1];
}

/*
		tmp |= val.i8 & 0x01;
		tmp |= val.i8 & 0x02;
		tmp |= val.i8 & 0x04;
		tmp	|= val.i8 & 0x08;
		tmp |= val.i8 & 0x10;
		tmp |= val.i8 & 0x20;
		tmp |= val.i8 & 0x40;
		tmp |= val.i8 & 0x80;
		*/

/*

	程序功能:解包,整型值至双字节型,偶数位合成一个字节,奇数位合成一个字节
	入口参数:整型数 val
	出口参数:INT2CHAR结构体变量。整型至双字节

*/
INT2CHAR valUnPack(unsigned int val)
{	char i;
	unsigned char bit2Char = 0 ;
	unsigned int bitShift = 0 ;
	INT2CHAR tmp;
	tmp.i16=0;
	bitShift = val;
	for(i = 0; i < 8*sizeof(bit2Char); i++)
	{	bit2Char >>= 1;
		if(0x0001 & bitShift)/* 奇数 */
		{
			bit2Char |=0x80;
		}else
		{
	//		bit2Char |=0x00;
		}
		bitShift >>= 2; 
	}
	tmp.i8[0] = bit2Char;
	bit2Char =0;
	bitShift = val;
	for(i = 0; i < 8*sizeof(bit2Char); i++)
	{		bit2Char >>= 1;
		if(0x0002 & bitShift)/* 偶数 */
		{
			bit2Char |=0x80;
		}else
		{
	//		bit2Char |=0x00;
		}
		bitShift >>= 2; 
	}
	tmp.i8[1] = bit2Char;
	return(tmp);
}
/*

	程序功能:打包,把奇数位,偶数位字节合成一个整型数
	入口参数:INT2CHAR结构体val,低字节奇数位,高字节偶数位
	出口参数:整型


*/
unsigned int valPack(INT2CHAR val)
{	char i;
	unsigned char bitShift = val.i8[0];
	unsigned int bit2int0 = 0,bit2int1 = 0;

	for(i = 0;i < 8*sizeof(bitShift) ;i++ )
	{	bit2int0 >>= 2 ;  
		if(bitShift & 0x01)
		{
			bit2int0 |=0x8000;
		}else
		{
	//		bit2int0 |=0x0000;
		}
		bitShift >>= 1 ;
	}

	bitShift = val.i8[1];
	for(i = 0;i < 8*sizeof(bitShift) ;i++ )
	{	bit2int1 >>= 2 ;
		if(bitShift & 0x01)
		{
			bit2int1 |= 0x4000;
		}else
		{
		//	bit2int1 |= 0x0000;
		}
		bitShift >>= 1 ;
	}
	return( bit2int0 | bit2int1 );
}
void ledsSelect(char sel)
{
	CTRLPORT	&=~(1 << sel);
}
/*
	 软串口
*/

void suart_Byte(unsigned char input)
{
    unsigned char  i=8;
    _suartBit1();                   //发送结束位
    _runTimer0_TimeUS(SUART_DPS);
	_waitTimer0OV();
    _suartBit0();//TXD=(bit)0;                     //发送启始位
        _runTimer0_TimeUS(SUART_DPS);
		_waitTimer0OV();
    //发送8位数据位
    while(i--)
    {
        if(input&0x01)
		{
			_suartBit1();
		}
		else
		{
			_suartBit0();
		}  //先传低位
        _runTimer0_TimeUS(SUART_DPS);
		_waitTimer0OV();
        input=input>>1;
    }
    //发送校验位(无)
    _suartBit1();                   //发送结束位
    _runTimer0_TimeUS(SUART_DPS);
	_waitTimer0OV();
}

⌨️ 快捷键说明

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