API UART: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Riadok 14: Riadok 14:
 
{| class=wikitable border=1 cellpadding=5
 
{| class=wikitable border=1 cellpadding=5
 
| '''UART_Start'''
 
| '''UART_Start'''
| Enable user module and set parity.  
+
| 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'''  
| Disable user module.
+
| Zakázanie modulu.
 
|-
 
|-
 
| '''UART_EnableInt'''   
 
| '''UART_EnableInt'''   
| Enable both RX and TX interrupts.   
+
| Povolenie Rx a Tx prerušení.   
 
|-
 
|-
 
| '''UART_DisableInt'''   
 
| '''UART_DisableInt'''   
| Disable both RX and TX interrupts.
+
| Zakázanie Rx a Tx prerušení.
 
|-
 
|-
 
|  '''UART_SetTxIntMode'''   
 
|  '''UART_SetTxIntMode'''   
| Set the source of the Tx interrupt.   
+
| Nastavenie zdroja Tx prerušenia.   
 
|-
 
|-
 
| '''UART_SendData'''   
 
| '''UART_SendData'''   
| Send byte without checking TX status.  
+
| Pošle byte bez kontroly stavu TX stavového registra.  
 
|-   
 
|-   
 
| '''UART_bReadTxStatus'''  
 
| '''UART_bReadTxStatus'''  
| Return status of TX Status register.  
+
| Vráti hodnotu TX stavového registra.  
 
|-  
 
|-  
 
| '''UART_bReadRxData'''  
 
| '''UART_bReadRxData'''  
| Return data in RX Data register without checking status of character is valid.   
+
| Vráti data v RX registri bez kontroly ich platnosti.   
 
|-  
 
|-  
| '''UART_bReadRxStatus'''   
+
| '''UART_bReadRxStatus'''   
| Check status of RX Status register.
+
| Vráti hodnotu RX stavového registra.
 
|-
 
|-
 
|}
 
|}

Verzia zo dňa a času 13:35, 1. jún 2010


Imbox draft.png
Toto je projekt, na ktorom sa ešte stále pracuje!!

Aj keď sú v tomto dokumente použiteľné informácie, ešte nie je dokončený. Svoje návrhy môžete vyjadriť v diskusii o tejto stránke.

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 a voliteľného High Level API, ktoré môžete aktivovať pri konfigurácii API bloku.

  • 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.

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.

Uart example 1.png
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].

Odkazy a literatúra