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

📄 util_bk.c

📁 ucosii的源代码希望能给予学习嵌入式系统的朋友一定的帮助
💻 C
字号:
/*
*			BK Project no.1 AVR Library
*
*			Start day : 2006. 04. 14.
*			File name : util_bk.c util_bk.h
*			Programer : Blue Bear.
*			version	  : v0.1
*			
*			If you want to know a full detail of these functions, See my blog(www.naver.blog.gemini525)
*			Function index in this file.
*				name[date].........Simple Description
*				SetPort()[06.04.13].........Set a Port In and Out.
*				Setb()[06.04.13]..........Set a bit of Port.
*				KeyChat()[06.04.17].......Check Key Function.
*				KeyChatExt()[06.04.21]....Extention Function.
*				
*				
*/
#include <avr/io.h>
#include "util_bk.h"

/**************************************************************************************************
*
*					SetPort()
*						Set Port Direction and Initial value.
*					arg 1: 器飘捞抚. 				-> 'A'
*					arg 2: 器飘 规氢.		-> OUT0|OUT2|OUT7
*					arg 3: 器飘 檬扁拳 蔼.
**************************************************************************************************/
void SetPort(uint8_t Reg, uint8_t ddr_reg, uint8_t val)
{
	if( Reg == 'A'){
		DDRA = ddr_reg;
		PORTA = val;
	}else if( Reg == 'B'){
		DDRB = ddr_reg;
		PORTB = val;
	}else if( Reg == 'C'){
		DDRC = ddr_reg;
		PORTC = val;
	}else if( Reg == 'D'){
		DDRD = ddr_reg;
		PORTD = val;
	}else if( Reg == 'E'){
		DDRE = ddr_reg;
		PORTE = val;
	}else if( Reg == 'F'){
		DDRF = ddr_reg;
		PORTF = val;
	}else if( Reg == 'G'){
		DDRG = ddr_reg;
		PORTG = val;
	}
}

/**************************************************************************************************
*
*					KeyChat()
*						虐 吝汗 眉农 窃荐.
*					arg 1: 虐涝仿 蔼.						-> PORTD & 0xf0
*					arg 2: 傈虐狼 蔼阑 历厘窍绰 函荐.  		-> &KeyBuff
*					arg 3: 虐狼 馆汗 冉荐甫 历厘窍绰 函荐.	-> &KeyCnt
*					arg 4: 虐 吝汗 涝仿 力茄 蔼. 			-> 9
*
*					KeyChatExt()
*						虐 吝汗 眉农 犬厘 窃荐.
*					struct __KeyChkReg
*						mem 1: 傈虐 涝仿蔼阑 历厘窍绰 函荐.
*						mem 2: 虐狼 馆汗 冉荐甫 历厘窍绰 函荐.
*						mem 3: 虐狼 吝汗 涝仿阑 力茄 窍绰 蔼.
*						mem 4: 虐 涝仿捞 绝阑 版快狼 虐蔼.
*						mem 5: 虐蔼捞 绒瓤茄 版快啊 吝汗 瞪 版快 馆汗阑 搬沥窍绰 蔼.
*					arg 1: 虐 涝仿 蔼.
*					arg 2: struct __KeyChkReg pointer variable.
**************************************************************************************************/
uint8_t KeyChat(uint8_t KeyReg, uint8_t *pKeyBuff, uint8_t *pKeyCnt, uint8_t ChatCnt)
{
	
	uint8_t KeyValue=0;

	if((*pKeyBuff == KeyReg)&&(*pKeyCnt != 0)){
		*pKeyCnt = *pKeyCnt - 1;
	}else if((*pKeyBuff == KeyReg)&&(*pKeyCnt == 0)){
		KeyValue = *pKeyBuff;
//		*pKeyCnt = ChatCnt;
	}else{
		*pKeyBuff = KeyReg;
		*pKeyCnt = ChatCnt;
		KeyValue = 0;
	}
	
	return KeyValue;
}

uint8_t KeyChatExt(uint8_t KeyReg, KeyChkReg *psKeyChkReg)
{
	
	uint8_t KeyValue=0;

	if(KeyReg != psKeyChkReg->DefValue){
		if((psKeyChkReg->KeyBuff == KeyReg)&&(psKeyChkReg->KeyCnt != 0)){
			psKeyChkReg->KeyCnt = psKeyChkReg->KeyCnt - 1;
		}else if((psKeyChkReg->KeyBuff == KeyReg)&&(psKeyChkReg->KeyCnt == 0)){
			KeyValue = psKeyChkReg->KeyBuff;
			psKeyChkReg->KeyCnt = psKeyChkReg->KeyOverlap;
		}else psKeyChkReg->KeyBuff = KeyReg;
	}else{
		psKeyChkReg->KeyCnt = psKeyChkReg->ChatCnt;
		KeyValue = 0;

	}
	
	return KeyValue;
}



⌨️ 快捷键说明

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