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 PINB_ADDRESS 0x3
|
||||||
# define PINC_ADDRESS 0x6
|
# define PINC_ADDRESS 0x6
|
||||||
# define PIND_ADDRESS 0x9
|
# define PIND_ADDRESS 0x9
|
||||||
|
# elif defined(__AVR_ATtiny85__)
|
||||||
|
# define ADDRESS_BASE 0x10
|
||||||
|
# define PINB_ADDRESS 0x6
|
||||||
# else
|
# else
|
||||||
# error "Pins are not defined"
|
# error "Pins are not defined"
|
||||||
# endif
|
# endif
|
||||||
|
|
|
@ -287,3 +287,18 @@ ifneq (,$(filter $(MCU),atmega328p))
|
||||||
NO_UART ?= yes
|
NO_UART ?= yes
|
||||||
NO_SUSPEND_POWER_DOWN ?= yes
|
NO_SUSPEND_POWER_DOWN ?= yes
|
||||||
endif
|
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
|
#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;
|
UDCON = 1;
|
||||||
USBCON = (1 << FRZCLK); // disable USB
|
USBCON = (1 << FRZCLK); // disable USB
|
||||||
UCSR1B = 0;
|
UCSR1B = 0;
|
||||||
|
|
|
@ -45,19 +45,26 @@ void timer_init(void) {
|
||||||
# error "Timer prescaler value is not valid"
|
# error "Timer prescaler value is not valid"
|
||||||
#endif
|
#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
|
// Timer0 CTC mode
|
||||||
TCCR0A = _BV(WGM01);
|
TCCR0A = _BV(WGM01);
|
||||||
TCCR0B = prescaler;
|
TCCR0B = prescaler;
|
||||||
|
|
||||||
OCR0A = TIMER_RAW_TOP;
|
OCR0A = TIMER_RAW_TOP;
|
||||||
TIMSK0 = _BV(OCIE0A);
|
TIMSK0 = _BV(OCIE0A);
|
||||||
#else
|
|
||||||
// Timer0 CTC mode
|
|
||||||
TCCR0 = _BV(WGM01) | prescaler;
|
|
||||||
|
|
||||||
OCR0 = TIMER_RAW_TOP;
|
|
||||||
TIMSK = _BV(OCIE0);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue