[elektro] OT: VB2008 soros vonal olvasás
Balla Zoltán
sdrlab at yandex.ru
Mon Nov 11 17:27:40 CET 2013
Feladó: <elight at gmail.hu>
> A vett adatokat INTERRUPT-os kezeléssel,
> vagy egy ASM, C vagy miegymás betéttel nem lehetne
> egy körbufferbe az érkezés ritmusában bepakogatni?
> Ez garantáltan nem erőforrás igényes dolog.
>
> http://prohardver.hu/tema/regebbi_informatikai_konyvek_assembly_hardver_programozas_temakban/hsz_1-50.html
> http://www.antikvarium.hu/konyv/joe-campbell-c-tippek-trukkok-224480
>
>
> Azután ha megtelt a buffer , a főprogram eseménykezelője
> egyben kinyalja a megérkezett mondatot..
>
Nagyjából ez is történik normál esetben...
Van a hardver soros port, annak megszakításkezelője, amihez NEM férsz hozzá(hivatalosan)! A driver
pedig lekezeli a megszakítást, gyűjtve a memóriába a vett adatokat. Amint a meghatározott mennyiség
bejött, jelzi a soros port komponens felé, amit a user programból használunk. Az a beállítástól
függően 1...n byte után szintén eseménykezelőt hívhat meg, melyben tudjuk, hogy n darab byte
biztosan van már a pufferban.
De a kapcsolat a user program és a soros port komponens között többféle lehet, lehet pollingolás,
eseménykezelés, és logikátlan használat is. Elvileg mindegyik működhet is, ha nincs benne nagy
logikai bukfenc, de nem mindegy, hogy 100% erőforrást zabál fel közben a program, vagy csak alig
alig valamit! Ez pedig a user szintű részben dől el, nem a soros port komponens rétegben és főleg
nem a driverben....
Zoli
More information about the Elektro
mailing list