Je to oblbovač proti vypnutí odměřování, co se tu řešilo s časovačem TPL5111.
Něco jsem našel na netu jak řešit nastavení časovače a to uspání. Ještě jsem k tomu domastil další, co budu potřebovat.
Kód: Vybrat vše
#include <avr/sleep.h>
// pin pro generování pulzu
#define PULSE_PIN 3
volatile bool timer_fired = false;
ISR(TIMER1_COMPA_vect) // přerušení od časovače,
{timer_fired = true; } // nastavení že timer vypršel
//************************************************
void setup() {
pinMode(PULSE_PIN, OUTPUT); // nastavení pinu pro generování pulzu
//-------------------------------
// inicializace časovače
TCCR1A = 0;
TCCR1B = 0;
TCCR1B |= (1 << WGM12); // nastavení časovače do CTC módu
// OCR1A = 15624; // nastavení hodnoty pro 1 minutu (při 16 MHz)
OCR1A = 31248; // nastavení hodnoty pro 2 minuty (při 16 MHz)
TIMSK1 |= (1 << OCIE1A); // povolení přerušení při dosažení hodnoty OCR1A
//-------------------------------
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // nastavení režimu uspání
sleep_enable();
sei(); // povolení globálních přerušení
}
//*************************************************
void loop()
{ // čekání na přerušení po dvou minutách (časovač 1)
while (!timer_fired)
{sleep_mode();}
timer_fired = false; // reset příznaku přerušení
digitalWrite(PULSE_PIN, HIGH); // generujeme pulz 20 ms
delay(20);
digitalWrite(PULSE_PIN, LOW);
sleep_cpu(); // uspat procesor na další dvě minuty
}
Nevíte prosím někdo, v který vnitřní knihovně jsou ty definice časovačů schovaný? Co s tím? Napadá mě v dílně zkusit překopírovat všechny složky s názvem Arduino (v Program Files a Users) těma z PC, kde kompilace chodí. Jsou tam kupy definičních texťáků a netuším, kde je rozdíl nejspíš od nějaký aktualizace knihoven nebo desek.