mirror of
https://github.com/osiweb/unified_retro_keyboard.git
synced 2024-12-21 15:29:21 +00:00
Fix atmega2560 read_row routine
This commit is contained in:
parent
a9a759ac82
commit
e9630edb03
@ -271,10 +271,10 @@ void asdf_arch_led1_set(uint8_t value)
|
||||
void asdf_arch_led2_set(uint8_t value)
|
||||
{
|
||||
if (value) {
|
||||
set_bit(&ASDF_LED2_PORT, ASDF_LED2_BIT);
|
||||
clear_bit(&ASDF_LED2_PORT, ASDF_LED2_BIT);
|
||||
}
|
||||
else {
|
||||
clear_bit(&ASDF_LED2_PORT, ASDF_LED2_BIT);
|
||||
set_bit(&ASDF_LED2_PORT, ASDF_LED2_BIT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -296,10 +296,10 @@ void asdf_arch_led2_set(uint8_t value)
|
||||
void asdf_arch_led3_set(uint8_t value)
|
||||
{
|
||||
if (value) {
|
||||
set_bit(&ASDF_LED3_PORT, ASDF_LED3_BIT);
|
||||
clear_bit(&ASDF_LED3_PORT, ASDF_LED3_BIT);
|
||||
}
|
||||
else {
|
||||
clear_bit(&ASDF_LED3_PORT, ASDF_LED3_BIT);
|
||||
set_bit(&ASDF_LED3_PORT, ASDF_LED3_BIT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -599,7 +599,7 @@ static void asdf_arch_init_ascii_output(void)
|
||||
// INPUTS: none
|
||||
// OUTPUTS: none
|
||||
//
|
||||
// DESCRIPTION: Sets up columns port as input.
|
||||
// DESCRIPTION: Sets up columns port as input and enable weak pullups.
|
||||
//
|
||||
// SIDE EFFECTS: See DESCRIPTION
|
||||
//
|
||||
@ -610,6 +610,7 @@ static void asdf_arch_init_ascii_output(void)
|
||||
static void asdf_arch_init_columns(void)
|
||||
{
|
||||
ASDF_COLUMNS_DDR = ALL_INPUTS;
|
||||
ASDF_COLUMNS_PORT = ALL_PULLUPS;
|
||||
}
|
||||
|
||||
// PROCEDURE: asdf_arch_init_row_outputs
|
||||
@ -733,15 +734,13 @@ void asdf_arch_init(void)
|
||||
//
|
||||
asdf_cols_t asdf_arch_read_row(uint8_t row)
|
||||
{
|
||||
uint16_t rows = (1 << row);
|
||||
|
||||
ASDF_HIROW_PORT = rows >> 8;
|
||||
ASDF_LOROW_PORT = rows & 0xff;
|
||||
|
||||
return (asdf_cols_t) ASDF_COLUMNS_PIN;
|
||||
uint32_t rows = ~(((uint32_t) 1) << row);
|
||||
ASDF_LOROW_PORT = (uint8_t)(rows & 0xff);
|
||||
ASDF_HIROW_PORT = (uint8_t)((rows >> 8) & 0xff);
|
||||
return ~(asdf_cols_t) ASDF_COLUMNS_PIN;
|
||||
}
|
||||
|
||||
// PROCEDURE: asdf_arch_read_row
|
||||
// PROCEDURE: asdf_arch_osi_read_row
|
||||
// INPUTS: (uint8_t) row: the row number to be scanned
|
||||
// OUTPUTS: returns a word containing the active (pressed) columns
|
||||
//
|
||||
|
@ -271,17 +271,19 @@
|
||||
#define PIN_OUTPUT 1
|
||||
#define ALL_INPUTS 0
|
||||
#define ALL_OUTPUTS 0xff
|
||||
#define ALL_PULLUPS 0xff
|
||||
|
||||
#define ASDF_HIROW_PORT PORTA
|
||||
#define ASDF_HIROW_DDR DDRA
|
||||
#define ASDF_HIROW_PIN PINA
|
||||
|
||||
#define ASDF_LOROW_PORT PORTJ
|
||||
#define ASDF_LOROW_DDR DDRJ
|
||||
#define ASDF_LOROW_PIN PINJ
|
||||
|
||||
#define ASDF_COLUMNS_PORT PORTC
|
||||
#define ASDF_COLUMNS_PIN PINC
|
||||
#define ASDF_COLUMNS_DDR DDRC
|
||||
#define ASDF_COLUMNS_PULLUPS 0 // disable weak pullup
|
||||
|
||||
#define ASDF_ASCII_PORT PORTH
|
||||
#define ASDF_ASCII_DDR DDRH
|
||||
|
Loading…
Reference in New Issue
Block a user