Keďže tento MCU má iba 2K Flash a 128Byte RAM, nemohol som vytvoriť grafický buffer a tak je vykresľovanie spojitej sinusoidy, znakovej sady a celkovej grafiky riešené čisto algoritmom.
Celý osciloskop som navrhol tak, že kým stíha AD prevodník, sú vykreslené len 2-3 periódy. Inak sa objaví symbol "S:MAX" a zobrazí sa čo sa dá. Pri zmene frekvencie sa objavia symboly "SRCH >", alebo "SRCH <", čo značí, že osciloskop zrýchľuje, alebo spomaľuje vzorkovanie AD. Symbol "T:ADC" - znamená, že Trigger (štartovanie, synchronizácia ) je "odpaľovaná" priamo zo meraného vstupu (AD prevodníka). No je možnosť nastaviť synchronizáciu aj na externý TTL vstup (symbol "T:EXT").
Medzi merané hodnoty patrí: Veľkosť amplitúdy (vo Voltoch), Frekvencia (v Hz), Horná a spodná hodnota amplitúdy (vo Voltoch)
Tento osciloskop komunikuje s okolím pomocou ISP konektora. Teda je nutné všetky periférie pripájať cez rezistory. Na to slúži druhá doska, na ktorej sa aj upravuje signál +/-2,5V na 0-5V.
Napätie: 0-5V
Meranie frekvencia: 10Hz - 10KHz aj 20Khz (s vykreslením amplitúdy) a do 400KHz iba meranie frekvencie.
Program bol písaný v Assembléri. Tu je výpis kompiléra, ak by to nejakého programátora zaujímalo. Lebo ani som neveril, že to ten MCU dokáže.
Link pre podrobnosti: https://drive.google.com/open?id=0By465 ... 1hoYzZqbWM
Kód: Vybrať všetko
AVRA: advanced AVR macro assembler Version 1.3.0 Build 1 (8 May 2010)
Segment usage:
Code : 994 words (1988 bytes)
Data : 0 bytes
EEPROM : 0 bytes