#MCU = atmega32u4 # Teensy 2.0 | #MCU = atmega32u4 # Teensy 2.0 | ||||
#MCU = at90usb646 # Teensy++ 1.0 | #MCU = at90usb646 # Teensy++ 1.0 | ||||
#MCU = at90usb1286 # Teensy++ 2.0 | #MCU = at90usb1286 # Teensy++ 2.0 | ||||
MCU = atmega168 | |||||
#MCU = atmega168 | |||||
MCU = atmega328p | |||||
# Processor frequency. | # Processor frequency. | ||||
# so your program will run at the correct speed. You should also set this | # so your program will run at the correct speed. You should also set this | ||||
# variable to same clock speed. The _delay_ms() macro uses this, and many | # variable to same clock speed. The _delay_ms() macro uses this, and many | ||||
# examples use this variable to calculate timings. Do not add a "UL" here. | # examples use this variable to calculate timings. Do not add a "UL" here. | ||||
F_CPU = 20000000 | |||||
F_CPU = 12000000 | |||||
# Build Options | # Build Options |
* PS/2 Pin interrupt | * PS/2 Pin interrupt | ||||
*/ | */ | ||||
#ifdef PS2_USE_INT | #ifdef PS2_USE_INT | ||||
#if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) | |||||
/* uses INT1 for clock line(ATMega32U4) */ | /* uses INT1 for clock line(ATMega32U4) */ | ||||
#define PS2_CLOCK_PORT PORTD | #define PS2_CLOCK_PORT PORTD | ||||
#define PS2_CLOCK_PIN PIND | #define PS2_CLOCK_PIN PIND | ||||
EIMSK &= ~(1<<INT1); \ | EIMSK &= ~(1<<INT1); \ | ||||
} while (0) | } while (0) | ||||
#define PS2_INT_VECT INT1_vect | #define PS2_INT_VECT INT1_vect | ||||
#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__) | |||||
/* uses PCINT17(PD1) for clock line. this doesn't work with VUSB */ | |||||
#define PS2_CLOCK_PORT PORTD | |||||
#define PS2_CLOCK_PIN PIND | |||||
#define PS2_CLOCK_DDR DDRD | |||||
#define PS2_CLOCK_BIT 1 | |||||
#define PS2_DATA_PORT PORTD | |||||
#define PS2_DATA_PIN PIND | |||||
#define PS2_DATA_DDR DDRD | |||||
#define PS2_DATA_BIT 0 | |||||
#define PS2_INT_INIT() do { \ | |||||
PCICR |= (1<<PCIE2); \ | |||||
} while (0) | |||||
#define PS2_INT_ON() do { \ | |||||
PCMSK2 |= (1<<PCINT17); \ | |||||
} while (0) | |||||
#define PS2_INT_OFF() do { \ | |||||
PCMSK2 &= ~(1<<PCINT17); \ | |||||
} while (0) | |||||
#define PS2_INT_VECT PCINT2_vect | |||||
#endif | |||||
#endif | #endif | ||||
/* | /* |
ifdef NO_UART | ifdef NO_UART | ||||
OPT_DEFS += -DNO_UART | |||||
SRC += $(COMMON_DIR)/sendchar_null.c | SRC += $(COMMON_DIR)/sendchar_null.c | ||||
else | else | ||||
SRC += $(COMMON_DIR)/sendchar_uart.c \ | SRC += $(COMMON_DIR)/sendchar_uart.c \ |
#endif | #endif | ||||
CLKPR = 0x80, CLKPR = 0; | CLKPR = 0x80, CLKPR = 0; | ||||
#ifndef PS2_USE_USART | |||||
#ifndef NO_UART | |||||
uart_init(UART_BAUD_RATE); | uart_init(UART_BAUD_RATE); | ||||
#endif | #endif | ||||