From ab8c401197e43af6b96e62f70e152686e3399ba0 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 29 Aug 2019 16:52:47 +0300 Subject: [PATCH] upd --- GyverCore/boards.txt | 220 +++--- .../optiboot/optiboot_atmega328_pro_8MHz.hex | 35 + GyverCore/cores/arduino/pinOperation.cpp | 2 +- GyverCore/cores/arduino/time_init.cpp | 12 + GyverCore/keywords.txt | 713 ++++++++++++++++++ README.md | 17 +- package_GyverCore_index.json | 14 + 7 files changed, 902 insertions(+), 111 deletions(-) create mode 100644 GyverCore/bootloaders/optiboot/optiboot_atmega328_pro_8MHz.hex diff --git a/GyverCore/boards.txt b/GyverCore/boards.txt index 4056100..9862b02 100644 --- a/GyverCore/boards.txt +++ b/GyverCore/boards.txt @@ -1,127 +1,133 @@ -# See: http://code.google.com/p/arduino/wiki/Platforms - -menu.cpu=CPU & BOOT -menu.clock=Clock -menu.timers=Timers - -###################### - -nano.name=ATmega328/168 based - -nano.upload.tool=avrdude -nano.upload.protocol=arduino - -nano.bootloader.tool=avrdude -nano.bootloader.unlock_bits=0x3F -nano.bootloader.lock_bits=0x0F - -nano.build.board=AVR_NANO -nano.build.core=arduino +## See: http://code.google.com/p/arduino/wiki/Platforms ## почему у оптибута неправильно стоят фьюзы? https://github.com/arduino/ArduinoCore-avr/issues/10 +## optiboot v4 -## timer0 OVF ON/OFF -## -------------------------- -nano.menu.timers.yes_millis=with millis -nano.menu.timers.yes_millis.build.variant=yesmillis +menu.clock=Clock +menu.timers=System timer -nano.menu.timers.no_millis=without millis -nano.menu.timers.no_millis.build.variant=nomillis +######################## +## 328 old bootloader ## +######################## +nanoOld.name=ATmega328 (old bootloader) +nanoOld.upload.tool=avrdude +nanoOld.upload.protocol=arduino +nanoOld.bootloader.tool=avrdude +nanoOld.bootloader.unlock_bits=0x3F +nanoOld.bootloader.lock_bits=0x0F +nanoOld.build.board=AVR_NANO +nanoOld.build.core=arduino -## Clock -## -------------------------- -nano.menu.clock.clock16=16 MHz clock -nano.menu.clock.clock16.build.f_cpu=16000000L +nanoOld.upload.maximum_size=30720 +nanoOld.upload.maximum_data_size=2048 +nanoOld.upload.speed=57600 +nanoOld.bootloader.high_fuses=0xDA +nanoOld.bootloader.extended_fuses=0xFD +nanoOld.build.mcu=atmega328p -nano.menu.clock.clock8=8 MHz clock -nano.menu.clock.clock8.build.f_cpu=8000000L +nanoOld.menu.clock.external_16=External 16 MHz +nanoOld.menu.clock.external_16.bootloader.low_fuses=0xFF +nanoOld.menu.clock.external_16.build.f_cpu=16000000L +nanoOld.menu.clock.external_16.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex + +nanoOld.menu.clock.external_8=External 8 MHz +nanoOld.menu.clock.external_8.bootloader.low_fuses=0xFF +nanoOld.menu.clock.external_8.build.f_cpu=8000000L +nanoOld.menu.clock.external_8.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex + +nanoOld.menu.clock.internal_8=Internal 8 MHz +nanoOld.menu.clock.internal_8.bootloader.low_fuses=0xD2 +nanoOld.menu.clock.internal_8.build.f_cpu=8000000L +nanoOld.menu.clock.internal_8.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex + +nanoOld.menu.timers.yes_millis=millis enabled +nanoOld.menu.timers.yes_millis.build.variant=yesmillis +nanoOld.menu.timers.no_millis=millis disabled +nanoOld.menu.timers.no_millis.build.variant=nomillis -## ATmega328P - optiBoot -## -------------------------- -nano.menu.cpu.atmega328=ATmega328P - optiBoot +################## +## 328 optiBoot ## +################## +nanoOpti.name=ATmega328 (optiboot) +nanoOpti.upload.tool=avrdude +nanoOpti.upload.protocol=arduino +nanoOpti.bootloader.tool=avrdude +nanoOpti.bootloader.unlock_bits=0x3F +nanoOpti.bootloader.lock_bits=0x0F +nanoOpti.build.board=AVR_NANO +nanoOpti.build.core=arduino -##nano.menu.cpu.atmega328.upload.maximum_size=32256 -nano.menu.cpu.atmega328.upload.maximum_size=30720 -nano.menu.cpu.atmega328.upload.maximum_data_size=2048 -nano.menu.cpu.atmega328.upload.speed=115200 +nanoOpti.upload.maximum_size=30720 +nanoOpti.upload.maximum_data_size=2048 +nanoOpti.upload.speed=115200 +nanoOpti.bootloader.high_fuses=0xDA +nanoOpti.bootloader.extended_fuses=0xFD +nanoOpti.build.mcu=atmega328p -nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF -nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA -##nano.menu.cpu.atmega328.bootloader.high_fuses=0xDE -nano.menu.cpu.atmega328.bootloader.extended_fuses=0xFD -nano.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex +nanoOpti.menu.clock.external_16=External 16 MHz +nanoOpti.menu.clock.external_16.bootloader.low_fuses=0xFF +nanoOpti.menu.clock.external_16.build.f_cpu=16000000L +nanoOpti.menu.clock.external_16.bootloader.file=optiboot/optiboot_atmega328.hex -nano.menu.cpu.atmega328.build.mcu=atmega328p +nanoOpti.menu.clock.external_8=External 8 MHz +nanoOpti.menu.clock.external_8.bootloader.low_fuses=0xFF +nanoOpti.menu.clock.external_8.build.f_cpu=8000000L +nanoOpti.menu.clock.external_8.bootloader.file=optiboot/optiboot_atmega328_pro_8MHz.hex -## ATmega328P - old bootloader -## -------------------------- -nano.menu.cpu.atmega328old=ATmega328P - old bootloader +nanoOpti.menu.clock.internal_8=Internal 8 MHz +nanoOpti.menu.clock.internal_8.bootloader.low_fuses=0xD2 +nanoOpti.menu.clock.internal_8.build.f_cpu=8000000L +nanoOpti.menu.clock.internal_8.bootloader.file=optiboot/optiboot_atmega328_pro_8MHz.hex -nano.menu.cpu.atmega328old.upload.maximum_size=30720 -nano.menu.cpu.atmega328old.upload.maximum_data_size=2048 -nano.menu.cpu.atmega328old.upload.speed=57600 +nanoOpti.menu.timers.yes_millis=millis enabled +nanoOpti.menu.timers.yes_millis.build.variant=yesmillis +nanoOpti.menu.timers.no_millis=millis disabled +nanoOpti.menu.timers.no_millis.build.variant=nomillis -nano.menu.cpu.atmega328old.bootloader.low_fuses=0xFF -nano.menu.cpu.atmega328old.bootloader.high_fuses=0xDA -nano.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD -nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex +####################### +## 328 no bootloader ## +####################### +nanoWB.name=ATmega328 (without bootloader) +nanoWB.upload.tool=avrdude +nanoWB.upload.protocol=arduino +nanoWB.bootloader.tool=avrdude +nanoWB.bootloader.unlock_bits=0x3F +nanoWB.bootloader.lock_bits=0x0F +nanoWB.build.board=AVR_NANO +nanoWB.build.core=arduino -nano.menu.cpu.atmega328old.build.mcu=atmega328p +nanoWB.upload.maximum_size=32768 +nanoWB.upload.maximum_data_size=2048 +nanoWB.bootloader.high_fuses=0xDF +nanoWB.bootloader.extended_fuses=0xFD +nanoWB.build.mcu=atmega328p -## ATmega328P - NO bootloader -## -------------------------- -nano.menu.cpu.atmega328noBoot=ATmega328P - without bootloader +nanoWB.menu.clock.external_16=External 16 MHz +nanoWB.menu.clock.external_16.bootloader.low_fuses=0xFF +nanoWB.menu.clock.external_16.build.f_cpu=16000000L +nanoWB.menu.clock.external_16.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex -nano.menu.cpu.atmega328noBoot.upload.maximum_size=32768 -nano.menu.cpu.atmega328noBoot.upload.maximum_data_size=2048 +nanoWB.menu.clock.external_8=External 8 MHz +nanoWB.menu.clock.external_8.bootloader.low_fuses=0xFF +nanoWB.menu.clock.external_8.build.f_cpu=8000000L +nanoWB.menu.clock.external_8.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex -nano.menu.cpu.atmega328noBoot.bootloader.low_fuses=0xFF -nano.menu.cpu.atmega328noBoot.bootloader.high_fuses=0xDF -nano.menu.cpu.atmega328noBoot.bootloader.extended_fuses=0xFD +nanoWB.menu.clock.internal_8=Internal 8 MHz +nanoWB.menu.clock.internal_8.bootloader.low_fuses=0xD2 +nanoWB.menu.clock.internal_8.build.f_cpu=8000000L +nanoWB.menu.clock.internal_8.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex -nano.menu.cpu.atmega328noBoot.build.mcu=atmega328p +nanoWB.menu.clock.internal_1=Internal 1 MHz +nanoWB.menu.clock.internal_1.bootloader.low_fuses=0x52 +nanoWB.menu.clock.internal_1.build.f_cpu=1000000L +nanoWB.menu.clock.internal_1.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex -## ATmega168 - optiBoot -## ------------------------- -nano.menu.cpu.atmega168=ATmega168 - optiBoot +nanoWB.menu.clock.internal_128=Internal 128 kHz +nanoWB.menu.clock.internal_128.bootloader.low_fuses=0xD3 +nanoWB.menu.clock.internal_128.build.f_cpu=128000L +nanoWB.menu.clock.internal_128.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex -nano.menu.cpu.atmega168.upload.maximum_size=14336 -##nano.menu.cpu.atmega168.upload.maximum_size=15360 -nano.menu.cpu.atmega168.upload.maximum_data_size=1024 -nano.menu.cpu.atmega168.upload.speed=115200 - -nano.menu.cpu.atmega168.bootloader.low_fuses=0xff -nano.menu.cpu.atmega168.bootloader.high_fuses=0xdd -nano.menu.cpu.atmega168.bootloader.extended_fuses=0xF8 -##nano.menu.cpu.atmega168.bootloader.extended_fuses=0xFE -nano.menu.cpu.atmega168.bootloader.file=optiboot/optiboot_atmega168.hex - -nano.menu.cpu.atmega168.build.mcu=atmega168 - -## ATmega168 - old bootloader -## ------------------------- -nano.menu.cpu.atmega168old=ATmega168 - old bootloader - -nano.menu.cpu.atmega168old.upload.maximum_size=14336 -nano.menu.cpu.atmega168old.upload.maximum_data_size=1024 -nano.menu.cpu.atmega168old.upload.speed=19200 - -nano.menu.cpu.atmega168old.bootloader.low_fuses=0xff -nano.menu.cpu.atmega168old.bootloader.high_fuses=0xdd -nano.menu.cpu.atmega168old.bootloader.extended_fuses=0xF8 -nano.menu.cpu.atmega168old.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex - -nano.menu.cpu.atmega168old.build.mcu=atmega168 - -## ATmega168 - NO bootloader -## ------------------------- -nano.menu.cpu.atmega168noBoot=ATmega168 - without bootloader - -nano.menu.cpu.atmega168noBoot.upload.maximum_size=16144 -nano.menu.cpu.atmega168noBoot.upload.maximum_data_size=1024 - -nano.menu.cpu.atmega168noBoot.bootloader.low_fuses=0xff -nano.menu.cpu.atmega168noBoot.bootloader.high_fuses=0xdd -nano.menu.cpu.atmega168noBoot.bootloader.extended_fuses=0xff - -nano.menu.cpu.atmega168noBoot.build.mcu=atmega168 \ No newline at end of file +nanoWB.menu.timers.yes_millis=millis enabled +nanoWB.menu.timers.yes_millis.build.variant=yesmillis +nanoWB.menu.timers.no_millis=millis disabled +nanoWB.menu.timers.no_millis.build.variant=nomillis \ No newline at end of file diff --git a/GyverCore/bootloaders/optiboot/optiboot_atmega328_pro_8MHz.hex b/GyverCore/bootloaders/optiboot/optiboot_atmega328_pro_8MHz.hex new file mode 100644 index 0000000..7fa9227 --- /dev/null +++ b/GyverCore/bootloaders/optiboot/optiboot_atmega328_pro_8MHz.hex @@ -0,0 +1,35 @@ +:107E0000112484B714BE81FFF0D085E080938100F7 +:107E100082E08093C00088E18093C10086E0809377 +:107E2000C20088E08093C4008EE0C9D0259A86E025 +:107E300028E13EEF91E0309385002093840096BBCB +:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 +:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 +:107E6000A2D0813461F49FD0082FAFD0023811F036 +:107E7000013811F484E001C083E08DD089C08234E0 +:107E800011F484E103C0853419F485E0A6D080C0E4 +:107E9000853579F488D0E82EFF2485D0082F10E0AE +:107EA000102F00270E291F29000F111F8ED06801E7 +:107EB0006FC0863521F484E090D080E0DECF843638 +:107EC00009F040C070D06FD0082F6DD080E0C81688 +:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 +:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 +:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 +:107F0000A601A0E0B1E02C9130E011968C91119780 +:107F100090E0982F8827822B932B1296FA010C0160 +:107F200087BEE89511244E5F5F4FF1E0A038BF0790 +:107F300051F7F601A7BEE89507B600FCFDCF97BE46 +:107F4000E89526C08437B1F42ED02DD0F82E2BD052 +:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 +:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 +:107F7000D11C0EC0853739F428D08EE10CD085E9AC +:107F80000AD08FE07ACF813511F488E018D01DD067 +:107F900080E101D065CF982F8091C00085FFFCCF94 +:107FA0009093C60008958091C00087FFFCCF809118 +:107FB000C00084FD01C0A8958091C6000895E0E648 +:107FC000F0E098E1908380830895EDDF803219F02E +:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA +:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 +:047FF000FF270994CA +:027FFE00040479 +:0400000300007E007B +:00000001FF diff --git a/GyverCore/cores/arduino/pinOperation.cpp b/GyverCore/cores/arduino/pinOperation.cpp index 861164b..0a068af 100644 --- a/GyverCore/cores/arduino/pinOperation.cpp +++ b/GyverCore/cores/arduino/pinOperation.cpp @@ -23,7 +23,7 @@ void pinMode(uint8_t pin, uint8_t mode) case 2: // in_pullup if (pin < 8) { bitWrite(DDRD, pin, 0); // настраиваем как вх - bitWrite(PORTD, pin, 0); // вкл подтяжку + bitWrite(PORTD, pin, 1); // вкл подтяжку } else if (pin < 14) { bitWrite(DDRB, (pin - 8), 0); diff --git a/GyverCore/cores/arduino/time_init.cpp b/GyverCore/cores/arduino/time_init.cpp index 644ba4a..8c345b1 100644 --- a/GyverCore/cores/arduino/time_init.cpp +++ b/GyverCore/cores/arduino/time_init.cpp @@ -22,6 +22,13 @@ #define FRACT_MAX 125 #define MICROS_MULT 8 +#elif F_CPU >= 1000000L + +#define MILLIS_INC 16 +#define FRACT_INC 48 +#define FRACT_MAX 125 +#define MICROS_MULT 64 + #endif volatile unsigned long timer0_overflow_count = 0; @@ -83,6 +90,11 @@ void delayMicroseconds(unsigned int us) // работает на счете ти if (us <= 2) return; // = 3 cycles, (4 when true) us <<= 1; //x2 us, = 2 cycles us -= 4; // = 2 cycles +#elif F_CPU >= 1000000L + if (us <= 16) return; //= 3 cycles, (4 when true) + if (us <= 25) return; //= 3 cycles, (4 when true) + us -= 22; // = 2 cycles + us >>= 2; // us div 4, = 4 cycles #endif // busy wait __asm__ __volatile__ ( diff --git a/GyverCore/keywords.txt b/GyverCore/keywords.txt index dba4bd9..70f5531 100644 --- a/GyverCore/keywords.txt +++ b/GyverCore/keywords.txt @@ -37,6 +37,96 @@ uartReadString KEYWORD2 uartParseFloat KEYWORD2 uartParsePacket KEYWORD2 + +ISR KEYWORD2 + +UDR0 KEYWORD2 +UBRR0H KEYWORD2 +UBRR0L KEYWORD2 +UCSR0C KEYWORD2 +UCSR0B KEYWORD2 +UCSR0A KEYWORD2 +TWAMR KEYWORD2 +TWCR KEYWORD2 +TWDR KEYWORD2 +TWAR KEYWORD2 +TWSR KEYWORD2 +TWBR KEYWORD2 +ASSR KEYWORD2 +OCR2B KEYWORD2 +OCR2A KEYWORD2 +TCNT2 KEYWORD2 +TCCR2B KEYWORD2 +TCCR2A KEYWORD2 +OCR1BH KEYWORD2 +OCR1BL KEYWORD2 +OCR1AH KEYWORD2 +OCR1AL KEYWORD2 +ICR1H KEYWORD2 +ICR1L KEYWORD2 +TCNT1H KEYWORD2 +TCNT1L KEYWORD2 +TCCR1C KEYWORD2 +TCCR1B KEYWORD2 +TCCR1A KEYWORD2 +DIDR1 KEYWORD2 +DIDR0 KEYWORD2 +ADMUX KEYWORD2 +ADCSRB KEYWORD2 +ADCSRA KEYWORD2 +ADCH KEYWORD2 +ADCL KEYWORD2 +TIMSK2 KEYWORD2 +TIMSK1 KEYWORD2 +TIMSK0 KEYWORD2 +PCMSK2 KEYWORD2 +PCMSK1 KEYWORD2 +PCMSK0 KEYWORD2 +EICRA KEYWORD2 +PCICR KEYWORD2 +OSCCAL KEYWORD2 +PRR KEYWORD2 +CLKPR KEYWORD2 +WDTCSR KEYWORD2 +SREG KEYWORD2 +SPH KEYWORD2 +SPL KEYWORD2 +SPMCSR KEYWORD2 +MCUCR KEYWORD2 +MCUSR KEYWORD2 +SMCR KEYWORD2 +ACSR KEYWORD2 +SPDR KEYWORD2 +SPSR KEYWORD2 +SPCR KEYWORD2 +GPIOR2 KEYWORD2 +GPIOR1 KEYWORD2 +OCR0B KEYWORD2 +OCR0A KEYWORD2 +TCNT0 KEYWORD2 +TCCR0B KEYWORD2 +TCCR0A KEYWORD2 +GTCCR KEYWORD2 +EEARH KEYWORD2 +EEARL KEYWORD2 +EEDR KEYWORD2 +EECR KEYWORD2 +GPIOR0 KEYWORD2 +EIMSK KEYWORD2 +EIFR KEYWORD2 +PCIFR KEYWORD2 +TIFR2 KEYWORD2 +TIFR1 KEYWORD2 +TIFR0 KEYWORD2 +PORTD KEYWORD2 +DDRD KEYWORD2 +PIND KEYWORD2 +PORTC KEYWORD2 +DDRC KEYWORD2 +PINC KEYWORD2 +PORTB KEYWORD2 +DDRB KEYWORD2 +PINB KEYWORD2 ###################################### # Constants (LITERAL1) ####################################### @@ -56,3 +146,626 @@ A5 LITERAL1 A6 LITERAL1 A7 LITERAL1 +RESET_vect LITERAL1 +INT0_vect LITERAL1 +INT1_vect LITERAL1 +PCINT0_vect LITERAL1 +PCINT1_vect LITERAL1 +PCINT2_vect LITERAL1 +WDT_vect LITERAL1 +TIMER2_COMPA_vect LITERAL1 +TIMER2_COMPB_vect LITERAL1 +TIMER2_OVF_vect LITERAL1 +TIMER1_COMPA_vect LITERAL1 +TIMER1_COMPB_vect LITERAL1 +TIMER1_OVF_vect LITERAL1 +TIMER1_CAPT_vect LITERAL1 +TIMER0_COMPA_vect LITERAL1 +TIMER0_COMPB_vect LITERAL1 +TIMER0_OVF_vect LITERAL1 +SPI_STC_vect LITERAL1 +USART_RX_vect LITERAL1 +USART_UDRE_vect LITERAL1 +USART_TX_vect LITERAL1 +ADC_vect LITERAL1 +EE_READY_vect LITERAL1 +ANALOG_COMP_vect LITERAL1 +TWI_vect LITERAL1 +SPM_READY_vect LITERAL1 + +PD0 LITERAL1 +PD1 LITERAL1 +PD2 LITERAL1 +PD3 LITERAL1 +PD4 LITERAL1 +PD5 LITERAL1 +PD6 LITERAL1 +PD7 LITERAL1 + +PC0 LITERAL1 +PC1 LITERAL1 +PC2 LITERAL1 +PC3 LITERAL1 +PC4 LITERAL1 +PC5 LITERAL1 +PC6 LITERAL1 +PC7 LITERAL1 + +PB0 LITERAL1 +PB1 LITERAL1 +PB2 LITERAL1 +PB3 LITERAL1 +PB4 LITERAL1 +PB5 LITERAL1 +PB6 LITERAL1 +PB7 LITERAL1 + +PINB0 LITERAL1 +PINB1 LITERAL1 +PINB2 LITERAL1 +PINB3 LITERAL1 +PINB4 LITERAL1 +PINB5 LITERAL1 +PINB6 LITERAL1 +PINB7 LITERAL1 + +DDB0 LITERAL1 +DDB1 LITERAL1 +DDB2 LITERAL1 +DDB3 LITERAL1 +DDB4 LITERAL1 +DDB5 LITERAL1 +DDB6 LITERAL1 +DDB7 LITERAL1 + +PORTB0 LITERAL1 +PORTB1 LITERAL1 +PORTB2 LITERAL1 +PORTB3 LITERAL1 +PORTB4 LITERAL1 +PORTB5 LITERAL1 +PORTB6 LITERAL1 +PORTB7 LITERAL1 + +PINC0 LITERAL1 +PINC1 LITERAL1 +PINC2 LITERAL1 +PINC3 LITERAL1 +PINC4 LITERAL1 +PINC5 LITERAL1 +PINC6 LITERAL1 + +DDC0 LITERAL1 +DDC1 LITERAL1 +DDC2 LITERAL1 +DDC3 LITERAL1 +DDC4 LITERAL1 +DDC5 LITERAL1 +DDC6 LITERAL1 + +PORTC0 LITERAL1 +PORTC1 LITERAL1 +PORTC2 LITERAL1 +PORTC3 LITERAL1 +PORTC4 LITERAL1 +PORTC5 LITERAL1 +PORTC6 LITERAL1 + +PIND0 LITERAL1 +PIND1 LITERAL1 +PIND2 LITERAL1 +PIND3 LITERAL1 +PIND4 LITERAL1 +PIND5 LITERAL1 +PIND6 LITERAL1 +PIND7 LITERAL1 + +DDD0 LITERAL1 +DDD1 LITERAL1 +DDD2 LITERAL1 +DDD3 LITERAL1 +DDD4 LITERAL1 +DDD5 LITERAL1 +DDD6 LITERAL1 +DDD7 LITERAL1 + +PORTD0 LITERAL1 +PORTD1 LITERAL1 +PORTD2 LITERAL1 +PORTD3 LITERAL1 +PORTD4 LITERAL1 +PORTD5 LITERAL1 +PORTD6 LITERAL1 +PORTD7 LITERAL1 + +TOV0 LITERAL1 +OCF0A LITERAL1 +OCF0B LITERAL1 +TOV1 LITERAL1 +OCF1A LITERAL1 +OCF1B LITERAL1 +ICF1 LITERAL1 +TOV2 LITERAL1 +OCF2A LITERAL1 +OCF2B LITERAL1 + +PCIF0 LITERAL1 +PCIF1 LITERAL1 +PCIF2 LITERAL1 +INTF0 LITERAL1 +INTF1 LITERAL1 +INT0 LITERAL1 +INT1 LITERAL1 + +GPIOR00 LITERAL1 +GPIOR01 LITERAL1 +GPIOR02 LITERAL1 +GPIOR03 LITERAL1 +GPIOR04 LITERAL1 +GPIOR05 LITERAL1 +GPIOR06 LITERAL1 +GPIOR07 LITERAL1 + +EERE LITERAL1 +EEPE LITERAL1 +EEMPE LITERAL1 +EERIE LITERAL1 +EEPM0 LITERAL1 +EEPM1 LITERAL1 +EEDR0 LITERAL1 +EEDR1 LITERAL1 +EEDR2 LITERAL1 +EEDR3 LITERAL1 +EEDR4 LITERAL1 +EEDR5 LITERAL1 +EEDR6 LITERAL1 +EEDR7 LITERAL1 +EEAR0 LITERAL1 +EEAR1 LITERAL1 +EEAR2 LITERAL1 +EEAR3 LITERAL1 +EEAR4 LITERAL1 +EEAR5 LITERAL1 +EEAR6 LITERAL1 +EEAR7 LITERAL1 +EEAR8 LITERAL1 +EEAR9 LITERAL1 + +PSRSYNC LITERAL1 +PSRASY LITERAL1 +TSM LITERAL1 +WGM00 LITERAL1 +WGM01 LITERAL1 +COM0B0 LITERAL1 +COM0B1 LITERAL1 +COM0A0 LITERAL1 +COM0A1 LITERAL1 +CS00 LITERAL1 +CS01 LITERAL1 +CS02 LITERAL1 +WGM02 LITERAL1 +FOC0B LITERAL1 +FOC0A LITERAL1 +TCNT0_0 LITERAL1 +TCNT0_1 LITERAL1 +TCNT0_2 LITERAL1 +TCNT0_3 LITERAL1 +TCNT0_4 LITERAL1 +TCNT0_5 LITERAL1 +TCNT0_6 LITERAL1 +TCNT0_7 LITERAL1 +OCR0A_0 LITERAL1 +OCR0A_1 LITERAL1 +OCR0A_2 LITERAL1 +OCR0A_3 LITERAL1 +OCR0A_4 LITERAL1 +OCR0A_5 LITERAL1 +OCR0A_6 LITERAL1 +OCR0A_7 LITERAL1 +OCR0B_0 LITERAL1 +OCR0B_1 LITERAL1 +OCR0B_2 LITERAL1 +OCR0B_3 LITERAL1 +OCR0B_4 LITERAL1 +OCR0B_5 LITERAL1 +OCR0B_6 LITERAL1 +OCR0B_7 LITERAL1 +GPIOR10 LITERAL1 +GPIOR11 LITERAL1 +GPIOR12 LITERAL1 +GPIOR13 LITERAL1 +GPIOR14 LITERAL1 +GPIOR15 LITERAL1 +GPIOR16 LITERAL1 +GPIOR17 LITERAL1 +GPIOR20 LITERAL1 +GPIOR21 LITERAL1 +GPIOR22 LITERAL1 +GPIOR23 LITERAL1 +GPIOR24 LITERAL1 +GPIOR25 LITERAL1 +GPIOR26 LITERAL1 +GPIOR27 LITERAL1 +SPR0 LITERAL1 +SPR1 LITERAL1 +CPHA LITERAL1 +CPOL LITERAL1 +MSTR LITERAL1 +DORD LITERAL1 +SPE LITERAL1 +SPIE LITERAL1 +SPI2X LITERAL1 +WCOL LITERAL1 +SPIF LITERAL1 +SPDR0 LITERAL1 +SPDR1 LITERAL1 +SPDR2 LITERAL1 +SPDR3 LITERAL1 +SPDR4 LITERAL1 +SPDR5 LITERAL1 +SPDR6 LITERAL1 +SPDR7 LITERAL1 +ACIS0 LITERAL1 +ACIS1 LITERAL1 +ACIC LITERAL1 +ACIE LITERAL1 +ACI LITERAL1 +ACO LITERAL1 +ACBG LITERAL1 +ACD LITERAL1 +SE LITERAL1 +SM0 LITERAL1 +SM1 LITERAL1 +SM2 LITERAL1 +PORF LITERAL1 +EXTRF LITERAL1 +BORF LITERAL1 +WDRF LITERAL1 +IVCE LITERAL1 +IVSEL LITERAL1 +PUD LITERAL1 +BODSE LITERAL1 +BODS LITERAL1 +SPMEN LITERAL1 +PGERS LITERAL1 +PGWRT LITERAL1 +BLBSET LITERAL1 +RWWSRE LITERAL1 +SIGRD LITERAL1 +RWWSB LITERAL1 +SPMIE LITERAL1 +WDP0 LITERAL1 +WDP1 LITERAL1 +WDP2 LITERAL1 +WDE LITERAL1 +WDCE LITERAL1 +WDP3 LITERAL1 +WDIE LITERAL1 +WDIF LITERAL1 +CLKPS0 LITERAL1 +CLKPS1 LITERAL1 +CLKPS2 LITERAL1 +CLKPS3 LITERAL1 +CLKPCE LITERAL1 +PRADC LITERAL1 +PRUSART0 LITERAL1 +PRSPI LITERAL1 +PRTIM1 LITERAL1 +PRTIM0 LITERAL1 +PRTIM2 LITERAL1 +PRTWI LITERAL1 +CAL0 LITERAL1 +CAL1 LITERAL1 +CAL2 LITERAL1 +CAL3 LITERAL1 +CAL4 LITERAL1 +CAL5 LITERAL1 +CAL6 LITERAL1 +CAL7 LITERAL1 +PCIE0 LITERAL1 +PCIE1 LITERAL1 +PCIE2 LITERAL1 +ISC00 LITERAL1 +ISC01 LITERAL1 +ISC10 LITERAL1 +ISC11 LITERAL1 +PCINT0 LITERAL1 +PCINT1 LITERAL1 +PCINT2 LITERAL1 +PCINT3 LITERAL1 +PCINT4 LITERAL1 +PCINT5 LITERAL1 +PCINT6 LITERAL1 +PCINT7 LITERAL1 +PCINT8 LITERAL1 +PCINT9 LITERAL1 +PCINT10 LITERAL1 +PCINT11 LITERAL1 +PCINT12 LITERAL1 +PCINT13 LITERAL1 +PCINT14 LITERAL1 +PCINT16 LITERAL1 +PCINT17 LITERAL1 +PCINT18 LITERAL1 +PCINT19 LITERAL1 +PCINT20 LITERAL1 +PCINT21 LITERAL1 +PCINT22 LITERAL1 +PCINT23 LITERAL1 +TOIE0 LITERAL1 +OCIE0A LITERAL1 +OCIE0B LITERAL1 +TOIE1 LITERAL1 +OCIE1A LITERAL1 +OCIE1B LITERAL1 +ICIE1 LITERAL1 +TOIE2 LITERAL1 +OCIE2A LITERAL1 +OCIE2B LITERAL1 +ADCL0 LITERAL1 +ADCL1 LITERAL1 +ADCL2 LITERAL1 +ADCL3 LITERAL1 +ADCL4 LITERAL1 +ADCL5 LITERAL1 +ADCL6 LITERAL1 +ADCL7 LITERAL1 +ADCH0 LITERAL1 +ADCH1 LITERAL1 +ADCH2 LITERAL1 +ADCH3 LITERAL1 +ADCH4 LITERAL1 +ADCH5 LITERAL1 +ADCH6 LITERAL1 +ADCH7 LITERAL1 +ADPS0 LITERAL1 +ADPS1 LITERAL1 +ADPS2 LITERAL1 +ADIE LITERAL1 +ADIF LITERAL1 +ADATE LITERAL1 +ADSC LITERAL1 +ADEN LITERAL1 +ADTS0 LITERAL1 +ADTS1 LITERAL1 +ADTS2 LITERAL1 +ACME LITERAL1 +MUX0 LITERAL1 +MUX1 LITERAL1 +MUX2 LITERAL1 +MUX3 LITERAL1 +ADLAR LITERAL1 +REFS0 LITERAL1 +REFS1 LITERAL1 +ADC0D LITERAL1 +ADC1D LITERAL1 +ADC2D LITERAL1 +ADC3D LITERAL1 +ADC4D LITERAL1 +ADC5D LITERAL1 +AIN0D LITERAL1 +AIN1D LITERAL1 +WGM10 LITERAL1 +WGM11 LITERAL1 +COM1B0 LITERAL1 +COM1B1 LITERAL1 +COM1A0 LITERAL1 +COM1A1 LITERAL1 +CS10 LITERAL1 +CS11 LITERAL1 +CS12 LITERAL1 +WGM12 LITERAL1 +WGM13 LITERAL1 +ICES1 LITERAL1 +ICNC1 LITERAL1 +FOC1B LITERAL1 +FOC1A LITERAL1 +TCNT1L0 LITERAL1 +TCNT1L1 LITERAL1 +TCNT1L2 LITERAL1 +TCNT1L3 LITERAL1 +TCNT1L4 LITERAL1 +TCNT1L5 LITERAL1 +TCNT1L6 LITERAL1 +TCNT1L7 LITERAL1 +TCNT1H0 LITERAL1 +TCNT1H1 LITERAL1 +TCNT1H2 LITERAL1 +TCNT1H3 LITERAL1 +TCNT1H4 LITERAL1 +TCNT1H5 LITERAL1 +TCNT1H6 LITERAL1 +TCNT1H7 LITERAL1 +ICR1L0 LITERAL1 +ICR1L1 LITERAL1 +ICR1L2 LITERAL1 +ICR1L3 LITERAL1 +ICR1L4 LITERAL1 +ICR1L5 LITERAL1 +ICR1L6 LITERAL1 +ICR1L7 LITERAL1 +ICR1H0 LITERAL1 +ICR1H1 LITERAL1 +ICR1H2 LITERAL1 +ICR1H3 LITERAL1 +ICR1H4 LITERAL1 +ICR1H5 LITERAL1 +ICR1H6 LITERAL1 +ICR1H7 LITERAL1 +OCR1AL0 LITERAL1 +OCR1AL1 LITERAL1 +OCR1AL2 LITERAL1 +OCR1AL3 LITERAL1 +OCR1AL4 LITERAL1 +OCR1AL5 LITERAL1 +OCR1AL6 LITERAL1 +OCR1AL7 LITERAL1 +OCR1AH0 LITERAL1 +OCR1AH1 LITERAL1 +OCR1AH2 LITERAL1 +OCR1AH3 LITERAL1 +OCR1AH4 LITERAL1 +OCR1AH5 LITERAL1 +OCR1AH6 LITERAL1 +OCR1AH7 LITERAL1 +OCR1BL0 LITERAL1 +OCR1BL1 LITERAL1 +OCR1BL2 LITERAL1 +OCR1BL3 LITERAL1 +OCR1BL4 LITERAL1 +OCR1BL5 LITERAL1 +OCR1BL6 LITERAL1 +OCR1BL7 LITERAL1 +OCR1BH0 LITERAL1 +OCR1BH1 LITERAL1 +OCR1BH2 LITERAL1 +OCR1BH3 LITERAL1 +OCR1BH4 LITERAL1 +OCR1BH5 LITERAL1 +OCR1BH6 LITERAL1 +OCR1BH7 LITERAL1 +WGM20 LITERAL1 +WGM21 LITERAL1 +COM2B0 LITERAL1 +COM2B1 LITERAL1 +COM2A0 LITERAL1 +COM2A1 LITERAL1 +CS20 LITERAL1 +CS21 LITERAL1 +CS22 LITERAL1 +WGM22 LITERAL1 +FOC2B LITERAL1 +FOC2A LITERAL1 +TCNT2_0 LITERAL1 +TCNT2_1 LITERAL1 +TCNT2_2 LITERAL1 +TCNT2_3 LITERAL1 +TCNT2_4 LITERAL1 +TCNT2_5 LITERAL1 +TCNT2_6 LITERAL1 +TCNT2_7 LITERAL1 +OCR2_0 LITERAL1 +OCR2_1 LITERAL1 +OCR2_2 LITERAL1 +OCR2_3 LITERAL1 +OCR2_4 LITERAL1 +OCR2_5 LITERAL1 +OCR2_6 LITERAL1 +OCR2_7 LITERAL1 +OCR2_0 LITERAL1 +OCR2_1 LITERAL1 +OCR2_2 LITERAL1 +OCR2_3 LITERAL1 +OCR2_4 LITERAL1 +OCR2_5 LITERAL1 +OCR2_6 LITERAL1 +OCR2_7 LITERAL1 +TCR2BUB LITERAL1 +TCR2AUB LITERAL1 +OCR2BUB LITERAL1 +OCR2AUB LITERAL1 +TCN2UB LITERAL1 +AS2 LITERAL1 +EXCLK LITERAL1 +TWBR0 LITERAL1 +TWBR1 LITERAL1 +TWBR2 LITERAL1 +TWBR3 LITERAL1 +TWBR4 LITERAL1 +TWBR5 LITERAL1 +TWBR6 LITERAL1 +TWBR7 LITERAL1 +TWPS0 LITERAL1 +TWPS1 LITERAL1 +TWS3 LITERAL1 +TWS4 LITERAL1 +TWS5 LITERAL1 +TWS6 LITERAL1 +TWS7 LITERAL1 +TWGCE LITERAL1 +TWA0 LITERAL1 +TWA1 LITERAL1 +TWA2 LITERAL1 +TWA3 LITERAL1 +TWA4 LITERAL1 +TWA5 LITERAL1 +TWA6 LITERAL1 +TWD0 LITERAL1 +TWD1 LITERAL1 +TWD2 LITERAL1 +TWD3 LITERAL1 +TWD4 LITERAL1 +TWD5 LITERAL1 +TWD6 LITERAL1 +TWD7 LITERAL1 +TWIE LITERAL1 +TWEN LITERAL1 +TWWC LITERAL1 +TWSTO LITERAL1 +TWSTA LITERAL1 +TWEA LITERAL1 +TWINT LITERAL1 +TWAM0 LITERAL1 +TWAM1 LITERAL1 +TWAM2 LITERAL1 +TWAM3 LITERAL1 +TWAM4 LITERAL1 +TWAM5 LITERAL1 +TWAM6 LITERAL1 +MPCM0 LITERAL1 +U2X0 LITERAL1 +UPE0 LITERAL1 +DOR0 LITERAL1 +FE0 LITERAL1 +UDRE0 LITERAL1 +TXC0 LITERAL1 +RXC0 LITERAL1 +TXB80 LITERAL1 +RXB80 LITERAL1 +UCSZ02 LITERAL1 +TXEN0 LITERAL1 +RXEN0 LITERAL1 +UDRIE0 LITERAL1 +TXCIE0 LITERAL1 +RXCIE0 LITERAL1 +UCPOL0 LITERAL1 +UCSZ00 LITERAL1 +UCPHA0 LITERAL1 +UCSZ01 LITERAL1 +UDORD0 LITERAL1 +USBS0 LITERAL1 +UPM00 LITERAL1 +UPM01 LITERAL1 +UMSEL00 LITERAL1 +UMSEL01 LITERAL1 +UBRR0_0 LITERAL1 +UBRR0_1 LITERAL1 +UBRR0_2 LITERAL1 +UBRR0_3 LITERAL1 +UBRR0_4 LITERAL1 +UBRR0_5 LITERAL1 +UBRR0_6 LITERAL1 +UBRR0_7 LITERAL1 +UBRR0_8 LITERAL1 +UBRR0_9 LITERAL1 +UBRR0_10 LITERAL1 +UBRR0_11 LITERAL1 +UDR0_0 LITERAL1 +UDR0_1 LITERAL1 +UDR0_2 LITERAL1 +UDR0_3 LITERAL1 +UDR0_4 LITERAL1 +UDR0_5 LITERAL1 +UDR0_6 LITERAL1 +UDR0_7 LITERAL1 + + + + + + + + + + + diff --git a/README.md b/README.md index c8bc3e4..a280758 100644 --- a/README.md +++ b/README.md @@ -115,13 +115,15 @@ parseFloat | 1070 | 246 | 824 В ядре оставлены стандартные загрузчики для ATmega328 и добавлен вариант прошивки без загрузчика - Новый с **optiBoot**, киатйцы тоже потихоньку начинают продавать платы с ним - Старый **old bootloader** -- Вариант **Without bootloader** для прошивки скетча во всю доступную (32 кБ) память МК +- Вариант **without bootloader** для прошивки скетча во всю доступную (32 кБ) память МК ## Дополнительно - Смотри примеры в папке **examples** (в корне этого репозитория!) -- Добавлен вариант прошивки без загрузчика **ATmega 328/168 without bootloader** (во всю доступную Flash память) для прошивки через ISP +- Добавлен вариант прошивки без загрузчика **without bootloader** (во всю доступную Flash память) для прошивки через ISP - Добавлен вариант прошивки с отключенными функциями времени **with/without millis** (освобождает вектор **TIMER0_OVF_vect** для личного пользования) - Добавлена поддержка 8 и 16 МГц частоты, функции времени и UART автоматически корректируются под выбранную частоту +- Добавлена возможность тактироваться от внутреннего тактового генератора (128 кГц, 1 МГц, 8 МГц). Нужно выбрать частоту и "записать загрузчик" + - **ВНИМАНИЕ!** После прошивки на частоту 128 кГц дальнейшая загрузка по ISP возможно только с понижением частоты ISP на стороне программатора! ## Больше контроля! Для большего контроля за периферией микроконтроллера рекомендую попробовать следующие наши библиотеки: @@ -146,4 +148,13 @@ parseFloat | 1070 | 246 | 824 - Восстановлена совместимость между номерами пинов для analogRead (A-пины и цифры) - 1.5.0 - Облегчён analogRead - - Чуть исправлена инициализация watchdog \ No newline at end of file + - Чуть исправлена инициализация watchdog +- 1.6.0 + - Пофикшен **INPUT_PULLUP** + - Добавлена расширенная подсветка синтаксиса (регистры и байты) + - Убрана поддержка ATmega168 + - Изменена логика выбора платы + - Добавлена поддержка тактирования от внутреннего генератора: + - 8 МГц + - 1 МГц (только для without bootloader) + - 128 кГц (только для without bootloader) \ No newline at end of file diff --git a/package_GyverCore_index.json b/package_GyverCore_index.json index 4304974..7b70eef 100644 --- a/package_GyverCore_index.json +++ b/package_GyverCore_index.json @@ -92,6 +92,20 @@ {"name": "ATmega328/168 based boards"} ], "toolsDependencies": [] + }, + { + "name": "GyverCore", + "architecture": "avr", + "version": "1.6.0", + "category": "Contributed", + "url": "https://github.com/AlexGyver/GyverCore/releases/download/GyverCore-1.6.0/GyverCore.zip", + "archiveFileName": "GyverCore.zip", + "checksum": "MD5:8627c5829455a1445948fccac0105bd2", + "size": "143436", + "boards": [ + {"name": "ATmega328 based boards"} + ], + "toolsDependencies": [] } ], "tools": []