1
0
mirror of https://github.com/AlexGyver/GyverCore.git synced 2025-07-29 19:01:12 +03:00
This commit is contained in:
Alex
2019-09-08 11:29:40 +03:00
parent b23c0d5da1
commit 95b9064457
7 changed files with 43 additions and 26 deletions

View File

@ -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.

View File

@ -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) {

View File

@ -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) {
if (val == 0) {
digitalWrite(pin, 0);
return;
}
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
cli();//выключаем прерывания
switch (val) {
switch (pin) {
case 5:
bitSet(TCCR0A, COM0B1);
OCR0B = val;

View File

@ -48,7 +48,6 @@ void delay(unsigned long ms) {
#ifdef _GYVERCORE_NOMILLIS
_delay_ms(ms);
#else
uint32_t start = micros(); // запомнили время старта
while (ms > 0) { // ведем отсчет
yield();

View File

@ -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

View File

@ -219,3 +219,8 @@ parseFloat | 1070 | 246 | 824
- Поправлены баги с Serial
- И не только с Serial
- Оптимизированы прерывания
- 1.8
- Поправлена ошибка с таймером
- Исправлена куча багов
- Дописан keywords
- Всё протестировано на всех загрузчиках

View File

@ -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": []