diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | Makefile | 6 | ||||
| -rw-r--r-- | kbc.c | 11 |
3 files changed, 14 insertions, 5 deletions
@@ -1,3 +1,5 @@ *.o *.flash *.eeprom +*.map +*.orig @@ -28,14 +28,16 @@ love: kbc.flash kbc.eeprom @$(ASIZE) $@ %.o: %.c $(ACC) $(ACFLAGS) -c -o $@ $< flash: kbc.flash - $(AVRDUDE) -y -p m48 -E noreset -U $^ + $(AVRDUDE) -y -p m48 -E noreset -U flash:w:$<:r +eeprom: kbc.eeprom + $(AVRDUDE) -y -p m48 -E noreset -U eeprom:w:$<:r clean: rm -f *.flash *.eeprom *.o -.PHONY: love flash clean +.PHONY: love flash eeprom clean .SECONDARY: @@ -87,12 +87,13 @@ static void usart_rxpoll() static void usart_dis() { UCSR0B = 0; (void)UDR0; } +#if 0 static uint8_t dbgtx[64]; static uint8_t dbgpos; static void dbg_wr(uint8_t what) { cli(); @@ -118,12 +119,16 @@ ISR(SIG_SPI) static void dbg_init(void) { DDRB |= B_MISO; /* MSB first, cpol = rise,fall, cpha = sample(r),setup(f) */ SPCR = (1 << SPIE) | (1 << SPE); } +#else +#define dbg_init() +#define dbg_wr(x) +#endif static volatile uint8_t statecntr = 0; #define mayabort if (TIFR0 & (1 << TOV0)) return bit; #define _wait_CLK(cond) while(cond) { mayabort; } #define wait_CLKlo _wait_CLK( PIND /* & p0 & p1 & p2 */ & D_CLK) @@ -329,14 +334,14 @@ static uint8_t wait_byte(void) static uint8_t cntr = 0; #ifdef KILLSWITCH static uint8_t error; #endif -static const EEMEM char passwd[sizeof(PIN) - 1] = PIN; -static char code[sizeof(PIN)]; +static const EEMEM uint8_t passwd[sizeof(PIN) - 1] = PIN; +static uint8_t code[sizeof(PIN)]; static void state_enter(void) { switch (state) { case STATE_NONE: case STATE_FAILURE: @@ -476,13 +481,13 @@ ISR(SIG_OVERFLOW0) } #define ESC 0x1b #define ENT 0x0d #define KBC_BASE 0x16 -const PROGMEM char kbc[] = { +const PROGMEM uint8_t kbc[] = { /* 0 1 2 3 4 5 6 7 * 8 9 a b c d e f */ '1', '_', /* 10 - 17 */ '_', '_', '_', '_', '_', '_', '2', '_', /* 18 - 1f */ '_', '_', '_', '_', '_', '4', '3', '_', /* 20 - 27 */ |
