read.c

来自「Source code for driving RFM01 fm radio r」· C语言 代码 · 共 58 行

C
58
字号
#include "../kbd.h"

u08 KBD_key;	//zmienna przechowuj筩a kod ostatnio przyci渘i阾ego klawisza

/*
	Funkcja pomocnicza (odczyt kolumny)
*/
u08 _KBD_readcol(u08 col)
{
  register u08 c=0;
  if (KBD_row1) c=col; else
  if (KBD_row2) c=col+1; else
  if (KBD_row3) c=col+2; else
  if (KBD_row4) c=col+3;
  return(c);
}

/*
	Odczyt klawiatury
*/
u08 KBD_read(void)
{
  register u08 k;
// ustawienie rz阣體 na odczyt
  cbi(KBD_PORT_D_row1,KBD_BIT_row1);  
  cbi(KBD_PORT_D_row2,KBD_BIT_row2);
  cbi(KBD_PORT_D_row3,KBD_BIT_row3);
  cbi(KBD_PORT_D_row4,KBD_BIT_row4);
// za彻czenie rezystor體 podci筭aj筩ych na liniach rz阣體
  sbi(KBD_PORT_row1,KBD_BIT_row1);
  sbi(KBD_PORT_row2,KBD_BIT_row2);
  sbi(KBD_PORT_row3,KBD_BIT_row3);
  sbi(KBD_PORT_row4,KBD_BIT_row4);

  KBD_key=0;
  KBD_col1_0;
  k=_KBD_readcol(1);
  if (k>0)
    KBD_key=k;
  KBD_col1_1;
  KBD_col2_0;
  k=_KBD_readcol(2);
  if (k>0) 
    KBD_key=3+k;
  KBD_col2_1;
  KBD_col3_0;
  k=_KBD_readcol(3);
  if (k>0) 
    KBD_key=6+k;
  KBD_col3_1;
  KBD_col4_0;
  k=_KBD_readcol(4);
  if (k>0) 
    KBD_key=9+k;
  KBD_col4_1;
  return(KBD_key);
}

⌨️ 快捷键说明

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