forked from mirrors/qmk_firmware
Initial support for ATtiny85 (#8632)
* Initial support for ATtiny85 * Update mcu selection
This commit is contained in:
parent
f2901375ce
commit
9c4bf0ac4a
4 changed files with 33 additions and 8 deletions
|
@ -63,6 +63,9 @@
|
|||
# define PINB_ADDRESS 0x3
|
||||
# define PINC_ADDRESS 0x6
|
||||
# define PIND_ADDRESS 0x9
|
||||
# elif defined(__AVR_ATtiny85__)
|
||||
# define ADDRESS_BASE 0x10
|
||||
# define PINB_ADDRESS 0x6
|
||||
# else
|
||||
# error "Pins are not defined"
|
||||
# endif
|
||||
|
|
|
@ -287,3 +287,18 @@ ifneq (,$(filter $(MCU),atmega328p))
|
|||
NO_UART ?= yes
|
||||
NO_SUSPEND_POWER_DOWN ?= yes
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),attiny85))
|
||||
PROTOCOL = VUSB
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
F_CPU ?= 16500000
|
||||
|
||||
# unsupported features for now
|
||||
NO_UART ?= yes
|
||||
NO_SUSPEND_POWER_DOWN ?= yes
|
||||
endif
|
||||
|
|
|
@ -247,7 +247,7 @@ void bootloader_jump(void) {
|
|||
|
||||
#else // Assume remaining boards are DFU, even if the flag isn't set
|
||||
|
||||
# if !(defined(__AVR_ATmega32A__) || defined(__AVR_ATmega328P__)) // no USB - maybe BOOTLOADER_BOOTLOADHID instead though?
|
||||
# if !(defined(__AVR_ATmega32A__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATtiny85__)) // no USB - maybe BOOTLOADER_BOOTLOADHID instead though?
|
||||
UDCON = 1;
|
||||
USBCON = (1 << FRZCLK); // disable USB
|
||||
UCSR1B = 0;
|
||||
|
|
|
@ -45,19 +45,26 @@ void timer_init(void) {
|
|||
# error "Timer prescaler value is not valid"
|
||||
#endif
|
||||
|
||||
#ifndef __AVR_ATmega32A__
|
||||
#if defined(__AVR_ATmega32A__)
|
||||
// Timer0 CTC mode
|
||||
TCCR0 = _BV(WGM01) | prescaler;
|
||||
|
||||
OCR0 = TIMER_RAW_TOP;
|
||||
TIMSK = _BV(OCIE0);
|
||||
#elif defined(__AVR_ATtiny85__)
|
||||
// Timer0 CTC mode
|
||||
TCCR0A = _BV(WGM01);
|
||||
TCCR0B = prescaler;
|
||||
|
||||
OCR0A = TIMER_RAW_TOP;
|
||||
TIMSK = _BV(OCIE0A);
|
||||
#else
|
||||
// Timer0 CTC mode
|
||||
TCCR0A = _BV(WGM01);
|
||||
TCCR0B = prescaler;
|
||||
|
||||
OCR0A = TIMER_RAW_TOP;
|
||||
TIMSK0 = _BV(OCIE0A);
|
||||
#else
|
||||
// Timer0 CTC mode
|
||||
TCCR0 = _BV(WGM01) | prescaler;
|
||||
|
||||
OCR0 = TIMER_RAW_TOP;
|
||||
TIMSK = _BV(OCIE0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue