📄 util_bk.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 + -