Hitachi Network Adapter H8 User Manual page 46

Lowcost evaluation board
Table of Contents

Advertisement

HTEB1
User manual
if (data & mask) pcnt++;
mask >>= 1;
}
if ((pcnt & 0x01) ^ (data & 0x0100)) return TRUE;
return FALSE;
}
interrupt [IRQ_2] void IRQ_2_Isr(void)
{
static u8 cnt;
static u16 val;
if (outact)
{
if (outval & 0x0001) PDR1 |= cKEYDATA;
else PDR1 &= ~cKEYDATA;
outval >>= 1;
if (!outval)
{
PDR1 |= cKEYDATA;
PCR1 &= ~cKEYDATA;
outact=0;
}
}
else
{
val >>= 1;
if (PDR1 & cKEYDATA) val |= 0x0200;
cnt++;
if (cnt>=11)
{
if (OddParStopCheck(val)==TRUE)
{
KeyCodeBuf[keyWriteIndex] = val;
keyWriteIndex++;
if (keyWriteIndex >= cKeyBufSize) keyWriteIndex = 0;
cnt = 0;
val = 0;
}
}
}
IRR1 &= ~0x04;
}
void SendKeyBoard(u8 data)
{
u8 pcnt = 0;
u8 mask = 0x80;
outval = data | 0x0600;
while (mask)
{
if (mask & data) pcnt++;
mask >>= 1;
}
if (!(pcnt & 0x01)) outval |= 0x0100;
PDR1 &= ~cKEYDATA;
PCR1 |= cKEYDATA;
outact = 1;
}
u8 kbhit(void)
{
if (keyReadIndex != keyWriteIndex) return TRUE;
else return FALSE;
}
u16 GetKey(void)
{
u16 KeyCode;
KeyCode = KeyCodeBuf[keyReadIndex];
Issue 0.2
// irq on key_clk
/* do some output? */
// set portpin as input (0)
// process input data
// clear IRQ-Flag
// send data to keyboard
// stopbit + clkbit(internal)
// calculate odd parity
// set parity bit
// set data=LOW
// set as output(1)
// start output action
Page 46
// set out=HIGH (1)
07/2002

Advertisement

Table of Contents
loading

This manual is also suitable for:

H8/tiny 3664fHteb1

Table of Contents