29.09.2015 Views

UART

doc2532

doc2532

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

AVR243<br />

Keyboard Scanning<br />

(Process Keypress)<br />

The keyboard scanning process is illustrated in Figure 8. First the column result is<br />

scanned. The three lower bits (column part) of the scancode is incremented until the low<br />

column line is found. Then, the port directions are inverted and the row result is<br />

scanned. The row part of the scancode is incremented until the low row bit is found.<br />

Finally, the scancode processing function is called.<br />

Figure 8. Keyboard Scanning<br />

Check Column Result<br />

Process Keypress<br />

Test Column Result<br />

Get Column Position<br />

Any Columns<br />

Low?<br />

Yes<br />

No<br />

Initialize Temporary<br />

Scancode<br />

RETURN<br />

Check Row Result<br />

LSB of Column<br />

Result Low?<br />

Yes<br />

No<br />

Invert Port<br />

Directions<br />

Shift Column Result<br />

Right 1 Bit<br />

Drive All Column<br />

Lines Low<br />

Increment Column<br />

Part of Scancode<br />

Test Row Result<br />

Get Row Position<br />

Any Rows Low?<br />

Yes<br />

No<br />

Set Original Port<br />

Directions<br />

LSB of Row<br />

Result Low?<br />

No<br />

Yes<br />

Process<br />

scancode<br />

RETURN<br />

Shift Row Result<br />

Right 1 Bit<br />

Set Original Port<br />

Directions<br />

Increment Row<br />

Part of Scancode<br />

RETURN<br />

2532A–AVR–01/03<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!