> kaip jame įgyvendinti duomenų perdavimą kad ir per UART'ą, kad duomenų gavimo metu minėtas ciklas nebūtų "užstabdytas"? AVR dar neturėjau progos įsisavinti, daug dirbau tik su 8052, bet nemanau, kad UART'ai iš esmės skiriasi. Taigi aname būdavo taip, kad rašai į UART duomenų registrą ir tikrini, ar jau visi bitai nuvažiavo; arba priešingai -- prieš įrašant tikrini, ar ankstesnis baitas jau išsiųstas. Iš anksto žinant, kad pauzės tarp baitų labai didelės, galima ir netikrinti. Realiai galima išspausti greitį apie bps/10 (arba /11, jei režimas su parity). Pavyzdžiui, 11520 baitų per sekundę. O jei leidžia kvarcas bei dalikliai, tai ir dar daugiau. Be to, ryšiui tarp dviejų kontrolerių (skirtingai nuo kontroleris<->PC) didesnis bps pasirinkimas, nes nebūtini "standartiniai" greičiai. Datasheet'uose viskas aprašyta. Todėl pakanka "nuskaityk-tikrink" sukti reikiamu greičiu ir, pasiekus ieškomą slenkstį, įrašyti atitinkamą konstantą į UART. Jei ADC savaime garantuotai lėtesnis už UART, arba samplinimo dažnis atitinkamai žemas, tai įrašinėti galima aklai. Jei ne, atsiras papildomų sąlygų: galbūt UART užstabdymo metu svarbiausia, kad būtų aptiktas ir praneštas aukštesnis slenkstis (tegul žemesnio slenksčio indikacija prarandama, juolab kad vėluoja). Vienu žodžiu, po slenksčio aptikimo įrašoma į UART, bet su sąlyga, kad šiuo metu baitas nesiunčiamas. Pertraukimus realizuojant asembleriu, beveik visus vėlavimus galima pasiskaičiuoti takto tikslumu. -- saimhe