#include "adcclass.h"
#include "hdo.h"
///////////////////////////////////////////////////////////////
/* Tohle je trochu komplexnější příklad.
 * 
 * Na vstup PC4 přivádíme ze síťového transformátoru napětí
 * cca 0.7-1 V efektivního napětí. Vstup musí být tedy připojen
 * na odporový dělič 1:1, zapojený mezi VCC a GND a trafo k tomuto
 * bodu připojíme přes vhodný kondenzátor, tak, aby střídavé napětí
 * nebylo limitováno.
 * Firmware z toho Goertzelovým algoritmem vytáhne signál HDO (zde 216.6 Hz)
 * a vyhodnotí jednotlivé pulsy. Velikost pulsu je vypisována na sériový
 * port (115200 Bd) a pokud překročí hodnotu trigger, rozsvítí LED na PD2 (aktivní v L).
 * Dále je pak z pulsů sestaven telegram, opět vypsán sériový port,
 * a pokud se shoduje s povelem uvedeným v konstruktoru Hdo, sepne / rozepne
 * relé na portu PD4 (aktivní v H) podle vysílaného signálu.
 * Celé se to vejde do 3.5 KiB flash a 1 KiB RAM, i v takto malém procesoru
 * tedy zbývá poměrně dost místa na jiné kraviny.
 * 
 * Tvar výpisů je tento:
 *  A1---B---4---- DP: VVZZ ZZZV ZZZZ VVZV
 *  A--3-B--34---- DP: --VV Z-V- -V-V ----
 *  A1---B-------8 DP: VVVZ VZVV ZZZV -VZV
 *  A1---B---45678 DP: ---Z -Z-V Z-Z- -VZV
 * 
 * 
 * !!! Krystal 24 MHz nutný !!!
 * */
///////////////////////////////////////////////////////////////
static AdcClass adc;
static Hdo      hdo ("A3B1DP7");
int main () {
  adc.attach(hdo);
  for (;;) {
    hdo.pass();
  }
  return 0;
}