mirror of
https://github.com/AlexGyver/GyverCore.git
synced 2025-07-03 04:22:31 +03:00
add
This commit is contained in:
@ -142,6 +142,7 @@ int analogRead(uint8_t pin)
|
||||
ADMUX &= ~((1 << MUX3) | (1 << MUX2) | (1 << MUX1) | (1 << MUX0)); // обнуляем мультиплексор
|
||||
ADMUX = ADMUX | pin; // задвигаем номер входа
|
||||
sei();
|
||||
if (pin == 8 || pin == 14) delay(2); // Wait for Vref to settle для VCC и термометра
|
||||
ADCSRA |= (1 << ADSC); // начинаем преобразование
|
||||
while (ADCSRA & (1 << ADSC)); // ждем окончания
|
||||
return ADCL | (ADCH << 8); // склеить и вернуть результат
|
||||
|
@ -96,8 +96,7 @@ parseFloat | 1070 | 246 | 824
|
||||
Убраны всякие сервисные файлы и прочий хлам, не относящийся к ATmega328 (wifi, USB). Ядро полностью совместимо с остальными библиотеками, ничего из стандартных функций не вырезано.
|
||||
|
||||
## Дополнительно
|
||||
### Настройки прошивки
|
||||
- Смотри примеры в папке examples (в корне этого репозитория!)
|
||||
- Смотри примеры в папке **examples** (в корне этого репозитория!)
|
||||
- Добавлен вариант прошивки без загрузчика **ATmega 328/168 without bootloader** (во всю доступную Flash память) для прошивки через ISP
|
||||
- Добавлен вариант прошивки с отключенными функциями времени **with/without millis** (освобождает вектор **TIMER0_OVF_vect** для личного пользования)
|
||||
|
||||
|
16
examples/temp_measure/temp_measure.ino
Normal file
16
examples/temp_measure/temp_measure.ino
Normal file
@ -0,0 +1,16 @@
|
||||
// измерение приблизительной температуры ядра
|
||||
|
||||
void setup() {
|
||||
uartBegin(9600);
|
||||
analogReference(INTERNAL); // подключаем АЦП к опорному
|
||||
analogPrescaler(128); // установить предделитель 128 (иначе некорректно измеряет)
|
||||
// в стандартном ядре делитель 129 является стандартным
|
||||
// в GyverCore по умполчанию 4 (быстрее измеряет)
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// analogRead(THERMOMETR) вернёт напряжение в мв
|
||||
// (val - 324.31 ) / 1.22 - примерное уравнение перевода в градусы по цельсию
|
||||
uartPrintln((float)(analogRead(THERMOMETR) - 324.31) / 1.22);
|
||||
delay(100);
|
||||
}
|
14
examples/vcc_measure/vcc_measure.ino
Normal file
14
examples/vcc_measure/vcc_measure.ino
Normal file
@ -0,0 +1,14 @@
|
||||
// измерение опорного напряжения
|
||||
|
||||
void setup() {
|
||||
uartBegin(9600);
|
||||
analogPrescaler(128); // установить предделитель 128 (иначе некорректно измеряет)
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// 1100 является константной, которую нужно калибровать (+- лапоть)
|
||||
int vcc = (float)1100 * 1023 / (analogRead(INTERNAL));
|
||||
uartPrint("vcc: ");
|
||||
uartPrintln(vcc); // напряжение в милливольтах
|
||||
delay(300);
|
||||
}
|
@ -16,8 +16,8 @@
|
||||
"category": "Contributed",
|
||||
"url": "https://github.com/AlexGyver/GyverCore/releases/download/GyverCore/GyverCore.zip",
|
||||
"archiveFileName": "GyverCore.zip",
|
||||
"checksum": "MD5:c304d158e055df8911457ed1aa42fae4",
|
||||
"size": "137283",
|
||||
"checksum": "MD5:a559f0299e7b815f5148a623f7fd70c6",
|
||||
"size": "137346",
|
||||
"boards": [
|
||||
{"name": "ATmega328/168 based boards"}
|
||||
],
|
||||
|
Reference in New Issue
Block a user