#include "main.h" /** USB osciloskop. * Původně to byl projekt pro STM32L452, ale i na CH32V203 to celkem funguje. * AD převodník zde je pomalejší, pro 1 kanál snese max 1 Mbps, zde 2 kanály, * tedy 500kbps max, s tím, že doba vzorkování je ta nejmenší, tedy vstupy se * musí krmit z co nejmenší impedance (výstup externího OZ). Dál nejde omezit * počet bitů na 10, musí zůstat 12. Vstupy jsou PA2, PA3. * Komunikace po USB CDC je v hexadecimálním formátu - písmenka lze snadno * číst a propustnost celkem vyhovuje - data 2*12 bitů zaberou 6 bytů, celkem * nic by se stejně neušetřilo, binárně by se předávaly stejně 4 byty. * Je zde aplikován trigger, zhruba jako normálního osciloskopu, nastavuje se * povely po USB, stejně jako časová základna. Formát povelů je patrný ze * zdrojáků. * Bylo jen potřeba dopsat kontinuální běh pro časy vzorkování větší než 1ms. * Zobrazování má za úkol aplikace v Qt5 v adresáři software. * */ static SampleRing ring; static AdcClass adc (ring); static cdc_class cdc; static GpioClass power(GPIOB, 3); int main () { cdc.init(); power << true; adc.Init(); ring += cdc; for (;;) { ring.pass (); } return 0; }