Clubcos  0.0.0
Clubcos - Clubc Operating System
 모두 데이타 구조 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 매크로 페이지들
keyboard.h 파일 참조
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
#include "port.h"
#include "keytable.h"
keyboard.h에 대한 include 의존 그래프
이 그래프는 이 파일을 직/간접적으로 include 하는 파일들을 보여줍니다.:

이 파일의 소스 코드 페이지로 가기

데이타 구조

struct  tagKeyStruct
 키 하나를 나타내는 구조체입니다. 더 자세히 ...
 
struct  tagKeyboardStruct
 키보드 자료구조입니다. 더 자세히 ...
 

타입정의

typedef struct tagKeyStruct KeyStruct
 키 하나를 나타내는 구조체입니다. 더 자세히 ...
 
typedef struct tagKeyboardStruct KeyboardStruct
 키보드 자료구조입니다. 더 자세히 ...
 

열거형 타입

enum  { KEYBOARD_PORT_CONTROL = 0x64, KEYBOARD_PORT_STATUS = 0x64, KEYBOARD_PORT_INPUT = 0x60, KEYBOARD_PORT_OUTPUT = 0x60 }
 
enum  {
  KEYBOARD_CONTROL_ACTIVATE_MOUSE = 0xa7, KEYBOARD_CONTROL_DEACTIVATED_MOUSE = 0xa8, KEYBOARD_CONTROL_ACTIVATE_KEYBOARD = 0xae, KEYBOARD_CONTROL_DEACTIVATE_KEYBOARD = 0xad,
  KEYBOARD_CONTROL_READ_OUTP = 0xd0, KEYBOARD_CONTROL_WRITE_OUTP = 0xd1
}
 
enum  {
  KEYBOARD_STATUS_PARE = 0x80, KEYBOARD_STATUS_TIM = 0x40, KEYBOARD_STATUS_AUXB = 0x20, KEYBOARD_STATUS_KEYL = 0x10,
  KEYBOARD_STATUS_C_D = 0x08, KEYBOARD_STATUS_SYSF = 0x04, KEYBOARD_STATUS_INPB = 0x02, KEYBOARD_STATUS_OUTB = 0x01
}
 
enum  { KEYBOARD_COMMAND_LED = 0xed, KEYBOARD_COMMAND_ACTIVATE = 0xf4, KEYBOARD_ACK = 0xfa }
 

함수

bool ckKeyboardInitialize (void)
 키보드를 초기화합니다. 더 자세히 ...
 
bool ckKeyboardUpdateLED (void)
 키보드 LED를 갱신합니다. 더 자세히 ...
 
bool ckKeyboardWaitForACK (void)
 키보드의 ACK를 기다립니다. 더 자세히 ...
 
bool ckKeyboardWaitForACKAndPutQueue (void)
 키보드의 ACK를 기다립니다. 더 자세히 ...
 
void ckKeyboardWaitForInput (void)
 입력 버퍼가 비어 있을 때까지 기다립니다. 더 자세히 ...
 
void ckKeyboardResetPC (void)
 키보드 컨트롤러를 통해 PC를 재부팅 시킵니다. 더 자세히 ...
 
void ckKeyboardIntHandler ()
 키보드 인터럽트 ISR입니다. 더 자세히 ...
 

변수

KeyStruct g_KeyTable []
 키 테이블입니다. 더 자세히 ...
 
KeyboardStruct g_Keyboard
 키보드 자료구조입니다. 더 자세히 ...
 

상세한 설명

날짜
2014. 4. 27.
작성자
dlarudgus20

타입정의 문서화

키보드 자료구조입니다.

typedef struct tagKeyStruct KeyStruct

키 하나를 나타내는 구조체입니다.

참고
g_KeyTable

열거형 타입 문서화

anonymous enum
열거형 멤버
KEYBOARD_PORT_CONTROL 
KEYBOARD_PORT_STATUS 
KEYBOARD_PORT_INPUT 
KEYBOARD_PORT_OUTPUT 
anonymous enum
열거형 멤버
KEYBOARD_CONTROL_ACTIVATE_MOUSE 
KEYBOARD_CONTROL_DEACTIVATED_MOUSE 
KEYBOARD_CONTROL_ACTIVATE_KEYBOARD 
KEYBOARD_CONTROL_DEACTIVATE_KEYBOARD 
KEYBOARD_CONTROL_READ_OUTP 
KEYBOARD_CONTROL_WRITE_OUTP 
anonymous enum
열거형 멤버
KEYBOARD_STATUS_PARE 
KEYBOARD_STATUS_TIM 
KEYBOARD_STATUS_AUXB 
KEYBOARD_STATUS_KEYL 
KEYBOARD_STATUS_C_D 
KEYBOARD_STATUS_SYSF 
KEYBOARD_STATUS_INPB 
KEYBOARD_STATUS_OUTB 
anonymous enum
열거형 멤버
KEYBOARD_COMMAND_LED 
KEYBOARD_COMMAND_ACTIVATE 
KEYBOARD_ACK 

함수 문서화

bool ckKeyboardInitialize ( void  )

키보드를 초기화합니다.

반환값
실패했을 경우 false입니다. 그렇지 않다면 true입니다.
void ckKeyboardIntHandler ( )

키보드 인터럽트 ISR입니다.

void ckKeyboardResetPC ( void  )

키보드 컨트롤러를 통해 PC를 재부팅 시킵니다.

bool ckKeyboardUpdateLED ( void  )

키보드 LED를 갱신합니다.

반환값
실패했을 경우 false입니다. 그렇지 않다면 true입니다.
bool ckKeyboardWaitForACK ( void  )

키보드의 ACK를 기다립니다.

기다리는 동안 입력된 스캔 코드는 무시합니다.

bool ckKeyboardWaitForACKAndPutQueue ( void  )

키보드의 ACK를 기다립니다.

기다리는 동안 입력된 스캔 코드를 인터럽트 큐에 삽입합니다.

void ckKeyboardWaitForInput ( void  )

입력 버퍼가 비어 있을 때까지 기다립니다.

변수 문서화

KeyboardStruct g_Keyboard

키보드 자료구조입니다.

KeyStruct g_KeyTable[]

키 테이블입니다.

Remarks
키 테이블에는 키 코드 순서대로 KeyStruct 가 배치되어 있습니다.
예를 들자면, i 키의 키 코드는 0x17입니다. 따라서 g_KeyTable[0x17].NormalKey는 'i'가, g_KeyTable[0x17].CombinedKey는 'I'입니다.
왼쪽 방향키의 키 코드는 0x88입니다. 따라서 g_KeyTable[0x88].NormalKey와 g_KeyTable[0x88]은 CASCII_LEFT입니다.
참고
KeyStruct