API UART: Rozdiel medzi revíziami
Riadok 4: | Riadok 4: | ||
== Aplikačné rozhranie bloku UART == | == Aplikačné rozhranie bloku UART == | ||
− | Kompletný popis aplikačného rozhrania modulu UART môžete nájsť v literatúre<ref>http://www.cypress.com/?docID=19130</ref>. API bloku UART pozostáva z dvoch častí, Low Level a voliteľného High Level API, ktoré môžete aktivovať pri konfigurácii | + | Kompletný popis aplikačného rozhrania modulu UART môžete nájsť v literatúre<ref>http://www.cypress.com/?docID=19130</ref>. API bloku UART pozostáva z dvoch častí, ''Low Level API'' a voliteľného ''High Level API'', ktoré môžete aktivovať pri konfigurácii bloku UART. |
− | * | + | * ''Low Level API'' - je určené pre riadenie bloku a základnú znakovú komunikáciu, funkcie API sú priamo volateľné z ASM M8C |
− | * | + | * ''High Level API'' - je určené pre komplexnú prácu s reťazcom znakov reprezentujúcich povel s parametrami. Funkcie API sú určené pre volanie z jazyka C. |
− | Základné funkcie | + | Základné funkcie ''Low Level API'' |
{| class=wikitable border=1 cellpadding=5 | {| class=wikitable border=1 cellpadding=5 | ||
| '''UART_Start''' | | '''UART_Start''' | ||
− | | Povolenie modulu a nastavenie parity. Prenosová rýchlosť sa nastavuje frekvenciou hodín na vstupe | + | | Povolenie modulu a nastavenie parity. Prenosová rýchlosť sa nastavuje frekvenciou hodín na vstupe ''Clock'', ktorá je 8x vyššia ako požadovaná prenosová rýchlosť. |
|- | |- | ||
| '''UART_Stop''' | | '''UART_Stop''' | ||
Riadok 39: | Riadok 39: | ||
| '''UART_bReadRxStatus''' | | '''UART_bReadRxStatus''' | ||
| Vráti hodnotu RX stavového registra. | | Vráti hodnotu RX stavového registra. | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | Parametrom ''RxCmdBuffer'' pri konfigurácii bloku môžeme povoliť používanie ''High Level API''. Pre použitie v ASM sú niektoré užitočné funkcie dostupné aj bez povoleného ''High Level API''. | ||
+ | |||
+ | {| class=wikitable border=1 cellpadding=5 | ||
+ | | '''UART_PutChar''' | ||
+ | | | ||
+ | |- | ||
+ | | '''UART_PutString''' | ||
+ | | | ||
+ | |- | ||
+ | | '''UART_CPutString''' | ||
+ | | | ||
+ | |- | ||
+ | | '''UART_PutSHexByte''' | ||
+ | | | ||
+ | |- | ||
+ | | '''UART_PutSHexInt''' | ||
+ | | | ||
+ | |- | ||
+ | | '''UART_PutCRLF''' | ||
+ | | | ||
|- | |- | ||
|} | |} |
Verzia zo dňa a času 13:53, 1. jún 2010
Aplikačné rozhranie bloku UART
Kompletný popis aplikačného rozhrania modulu UART môžete nájsť v literatúre[1]. API bloku UART pozostáva z dvoch častí, Low Level API a voliteľného High Level API, ktoré môžete aktivovať pri konfigurácii bloku UART.
- Low Level API - je určené pre riadenie bloku a základnú znakovú komunikáciu, funkcie API sú priamo volateľné z ASM M8C
- High Level API - je určené pre komplexnú prácu s reťazcom znakov reprezentujúcich povel s parametrami. Funkcie API sú určené pre volanie z jazyka C.
Základné funkcie Low Level API
UART_Start | Povolenie modulu a nastavenie parity. Prenosová rýchlosť sa nastavuje frekvenciou hodín na vstupe Clock, ktorá je 8x vyššia ako požadovaná prenosová rýchlosť. |
UART_Stop | Zakázanie modulu. |
UART_EnableInt | Povolenie Rx a Tx prerušení. |
UART_DisableInt | Zakázanie Rx a Tx prerušení. |
UART_SetTxIntMode | Nastavenie zdroja Tx prerušenia. |
UART_SendData | Pošle byte bez kontroly stavu TX stavového registra. |
UART_bReadTxStatus | Vráti hodnotu TX stavového registra. |
UART_bReadRxData | Vráti data v RX registri bez kontroly ich platnosti. |
UART_bReadRxStatus | Vráti hodnotu RX stavového registra. |
Parametrom RxCmdBuffer pri konfigurácii bloku môžeme povoliť používanie High Level API. Pre použitie v ASM sú niektoré užitočné funkcie dostupné aj bez povoleného High Level API.
UART_PutChar | |
UART_PutString | |
UART_CPutString | |
UART_PutSHexByte | |
UART_PutSHexInt | |
UART_PutCRLF |
Príklady použitia API UART
Pre rôzne testy zariadení a overenie funkcionality častí programov často potrebujeme jednoduchý program, ktorý po príjme znaku zo sériového rozhrania vykoná naprogramovanú aktivitu. Na takýto program sa môžeme pozerať aj ako na primitívny udalosťami riadený operačný systém. Vývojový diagram takéhoto programu ukazuje nasledujúci obrázok.
![]() |
Vývojový diagram príkladu |
Zdrojový kód príkladu je uvedený nižšie. Program po inicializácii čaká v slučke na príchod znaku, po príchode znaku ho načíta z buffra UART a podľa významu znaku vykonáva predvolenú aktivitu. Po ukončení aktivity sa vráti do slučky čakania na príchod znaku.
_main:
mov A,UART_PARITY_NONE ; inicializacia serioveho rozhrania
call UART_Start
M8C_EnableGInt
WaitForData: ; cakanie na prichod znaku
call UART_bReadRxStatus
and A, UART_RX_COMPLETE
jz WaitForData
call UART_bReadRxData ; nacitanie znaku
cmp A,'x' ; skok na aktivitu 'x'
jz state_x
cmp A,'y' ; skok na aktivitu 'y'
jz state_y
jmp WaitForData ; navrat do slucky cakania na novy znak
state_x:
; implementacia aktivity 'x'
jmp WaitForData
state_y:
; implementacia aktivity 'y'
jmp WaitForData
Ďaľšie príklady k modulu UART nájdete na stránkach [2][3].