Pseudo DMA pro MCU
Jak asi název DMA (Direct Memory Access) napovídá, jedná se o přímý přístup pariferních zařízení do paměti.
V PC již řadu let (přesněji snad desítky let) neodmyslitelná funkce. V principu jde o to, že periferie přes DMA řadič mohou
přistupovat přímo do operační paměti. CPU je v tomto případě "volný" k jiným úkolům a nemusí dané zařízení
nepřetržitě obsluhovat. Jediné co musí zajistit, je zinicializování přenosu. Tak například v případě čtení z HDD pošle řadiči
instrukce kolik dat, z jaké adresy a kam má načíst a po skončení operace řadič může vyvolat přerušení procesoru -
ten se už může "vrhnout" na kompletní data. Pseudo DMA rutiny pro HD44780
Tento demonstrační prográmek ukazuje pseudo DMA refresh LCD s řadičem HD44780.
Znaková paměť DDRAM se obnovuje z interní RAM AVR. Všechny texty/císla se zapisují jen do RAM, což
je velmi rychlé a po dokončení zápisu se jen zinicializuje refresh LCD a o zbytek se
postará přerušní timeru 2. Případně lze zapnout automatické obnovování po každém zápisu do
znakové RAM. Ušetří se tak poměrně dost strojového času, protože klasické obnovení LCD 2x20 znaků
by normálně trvalo přes 1,6ms v kuse a to je někdy až příliš. Rutiny jsou napsány pro ATmega32, ale změnou timeru je
lze přepsat pro kterýkoliv jiný AVR. Po vypsání pár textíků se spustí něco jako terminál. Komunikace je nastavena na 19200bd bez řízení toku. AVR přijaté znaky vypisuje na LCD a zároveň vrací terminálu. Enter maže řádek. Poslední aktualizace: 27.3.2007 |