mirror of
https://github.com/AlexGyver/GyverCore.git
synced 2025-07-29 19:01:12 +03:00
upd
This commit is contained in:
@ -124,7 +124,7 @@ menu.timers=System timer
|
||||
nano.menu.timers.yes_millis=enable
|
||||
nano.menu.timers.yes_millis.extra_flags.timer=
|
||||
nano.menu.timers.no_millis=disable
|
||||
nano.menu.timers.no_millis.build.extra_flags.timer=-D_GYVERCORE_NOMILLIS
|
||||
nano.menu.timers.no_millis.extra_flags.timer=-D_GYVERCORE_NOMILLIS
|
||||
|
||||
## BOD ##
|
||||
menu.bod=B.O.D.
|
||||
|
@ -1,7 +1,6 @@
|
||||
/* Главный цикл программы */
|
||||
#pragma message "Это фиксики , помогите !"
|
||||
#pragma message "Нас тут заперли, вызовите 911!"
|
||||
#pragma message "GyverCore v1.7.3 inside. Enjoy"
|
||||
#pragma message "GyverCore v1.8 inside. Enjoy"
|
||||
|
||||
#include <Arduino.h>
|
||||
int main(void) {
|
||||
|
@ -4,7 +4,7 @@
|
||||
#define ARDUINO_MAIN
|
||||
#include "Arduino.h"
|
||||
#include <avr/io.h>
|
||||
uint8_t a_ref = DEFAULT; // глобальная переменная для хранения опорного напряжения АЦП
|
||||
static uint8_t a_ref = DEFAULT; // глобальная переменная для хранения опорного напряжения АЦП
|
||||
// ============= DIGITAL =============
|
||||
|
||||
void pinMode(uint8_t pin, uint8_t mode)
|
||||
@ -81,21 +81,11 @@ void digitalToggle(uint8_t pin){
|
||||
if (pin < 8) bitToggle(PORTD, pin);
|
||||
else if (pin < 14) bitToggle(PORTB, pin - 8);
|
||||
else if (pin < 20) bitToggle(PORTC, pin - 14);
|
||||
/*
|
||||
if (pin < 8) {
|
||||
bitWrite(PORTD, pin, !bitRead(PORTD,pin));
|
||||
}
|
||||
else if (pin < 14){
|
||||
bitWrite(PORTB, (pin - 8),!bitRead(PORTB,(pin-8)));
|
||||
}
|
||||
else if (pin < 20){
|
||||
bitWrite(PORTC, (pin - 14), !bitRead(PORTC,(pin-14)));
|
||||
}
|
||||
*/
|
||||
|
||||
SREG = oldSREG; // если прерывания не были включены - не включаем и наоборот
|
||||
}
|
||||
// ============= ANALOG =============
|
||||
void analogPrescaler (uint8_t prescl) {
|
||||
void analogPrescaler(uint8_t prescl) {
|
||||
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
cli();//выключаем прерывания
|
||||
switch (prescl) {
|
||||
@ -131,7 +121,7 @@ void analogPrescaler (uint8_t prescl) {
|
||||
|
||||
void analogReference(uint8_t mode)
|
||||
{
|
||||
a_ref = mode; // изменения будут приняты в силу при следующем analogRead() / analogStartConvert()
|
||||
a_ref = mode; // изменения будут приняты в силу при следующем analogRead() / analogStartConvert()
|
||||
}
|
||||
|
||||
int analogRead(uint8_t pin)
|
||||
@ -141,7 +131,7 @@ int analogRead(uint8_t pin)
|
||||
}
|
||||
|
||||
void analogStartConvert(byte pin) {
|
||||
if(a_ref == INTERNAL) a_ref = 3; // для удобства задвигания
|
||||
if (a_ref == INTERNAL) a_ref = 3; // для удобства задвигания
|
||||
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
cli();//выключаем прерывания
|
||||
pin = (pin < 14) ? (pin) : (pin - 14); // совместимость между A0, A1.. A7 и 0, 1.. 7
|
||||
@ -159,9 +149,13 @@ int analogGet() {
|
||||
|
||||
// ============= PWM =============
|
||||
void analogWrite(uint8_t pin, int val) {
|
||||
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
if (val == 0) {
|
||||
digitalWrite(pin, 0);
|
||||
return;
|
||||
}
|
||||
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
cli();//выключаем прерывания
|
||||
switch (val) {
|
||||
switch (pin) {
|
||||
case 5:
|
||||
bitSet(TCCR0A, COM0B1);
|
||||
OCR0B = val;
|
||||
|
@ -48,7 +48,6 @@ void delay(unsigned long ms) {
|
||||
#ifdef _GYVERCORE_NOMILLIS
|
||||
_delay_ms(ms);
|
||||
#else
|
||||
|
||||
uint32_t start = micros(); // запомнили время старта
|
||||
while (ms > 0) { // ведем отсчет
|
||||
yield();
|
||||
|
@ -15,10 +15,7 @@ analogPrescaler KEYWORD2
|
||||
_BV KEYWORD2
|
||||
cbi KEYWORD2
|
||||
sbi KEYWORD2
|
||||
setPWM_20kHz KEYWORD2
|
||||
setPWM_9_10_resolution KEYWORD2
|
||||
setPwmFreqnuency KEYWORD2
|
||||
setPWM_default KEYWORD2
|
||||
|
||||
analogStartConvert KEYWORD2
|
||||
analogGet KEYWORD2
|
||||
|
||||
@ -40,6 +37,15 @@ lightInit KEYWORD2
|
||||
|
||||
ISR KEYWORD2
|
||||
|
||||
UINT8_MAX LITERAL1
|
||||
INT8_MAX LITERAL1
|
||||
UINT16_MAX LITERAL1
|
||||
INT16_MAX LITERAL1
|
||||
UINT32_MAX LITERAL1
|
||||
INT32_MAX LITERAL1
|
||||
UINT64_MAX LITERAL1
|
||||
INT64_MAX LITERAL1
|
||||
|
||||
UDR0 KEYWORD2
|
||||
UBRR0H KEYWORD2
|
||||
UBRR0L KEYWORD2
|
||||
|
@ -218,4 +218,9 @@ parseFloat | 1070 | 246 | 824
|
||||
- 1.7.4
|
||||
- Поправлены баги с Serial
|
||||
- И не только с Serial
|
||||
- Оптимизированы прерывания
|
||||
- Оптимизированы прерывания
|
||||
- 1.8
|
||||
- Поправлена ошибка с таймером
|
||||
- Исправлена куча багов
|
||||
- Дописан keywords
|
||||
- Всё протестировано на всех загрузчиках
|
@ -176,6 +176,20 @@
|
||||
{"name": "ATmega328 based boards"}
|
||||
],
|
||||
"toolsDependencies": []
|
||||
},
|
||||
{
|
||||
"name": "GyverCore",
|
||||
"architecture": "avr",
|
||||
"version": "1.8",
|
||||
"category": "Contributed",
|
||||
"url": "https://github.com/AlexGyver/GyverCore/releases/download/GyverCore-1.8/GyverCore.zip",
|
||||
"archiveFileName": "GyverCore.zip",
|
||||
"checksum": "MD5:78d54cc806fd5f654d46ab831473c21a",
|
||||
"size": "115396",
|
||||
"boards": [
|
||||
{"name": "ATmega328 based boards"}
|
||||
],
|
||||
"toolsDependencies": []
|
||||
}
|
||||
],
|
||||
"tools": []
|
||||
|
Reference in New Issue
Block a user