Open kaklik opened 8 months ago
Experimentálně jsem zkusil cvaknutí přidat do firmware. Taková implementace má několik zásadních omezení:
Mám k té implementaci poznámky, u arduina je známé, že jeho výchozí metody pro digitalWrite zabírají relativně hodně instrukcí, protože dělá věci, jako že kontroluje existenci pinu a další (pro tento účel ne úplně potřeblé) věci. Zřejmě to souvisí s tím, aby kód byl snadno přenositelný mezi procesory, což aktuálně není náš požadavek.
Více informací je např zde: https://roboticsbackend.com/arduino-fast-digitalwrite/
Kde zároveň uvádí, že tato operace trvá 3.4 us.
V případě přímého zápisu do registru nastavující tento pin je to značně rychlejší. Pouze při zápisu se lze dostat na 0.19 us. Což my nemůžeme nastavovat celou sběrnici ale měnit jeden pin. To podle stejného odkazu zabere 0.26 us.
Vím, že existují knihovny, které obsahuí něco jako "FastDigitalWrite()" funkci. Je na zvážení, jestli využívat tuto funkci z nějakých c-knihoven a nebo používat přímo zápis do registru sběrnice.
Pak mne napadlo, že by bylo možná užitečné místo bzučáku používat LEDku pro rychlou diagnostiku stavu detektoru (nebo možnost volby)
Vypínáni a nastavování této funkce bych si představoval pomocí dosview nastavením dohodnutých bitů do eeprom.
Bylo by užitečné, kdyby detektor uměl vytvářet cvakání, podobně jako je známé z GM detektoru. Mělo by to tyhle výhody:
Takovou funkci by pravděpodobně mělo být možné nějakým způsobem zapnout a vypnout. Nepovažoval bych za praktické, kdyby to vyžadovalo úplně speciální firmware (je tu ale omezení, že cvakání určitě bude žrát procesorový čas a tím zřejmě ovlivňovat mrtvou dobu) Vypínání, nebo zapínání takové vlastnosti by šlo například implementovat držením tlačítka na předním panelu. Nebo případně zápisem na nějakou adresu EEPROM, kde si toho procesor po zapnutí všimne.