USART Fonksiyonları


USART FonksiyonlarıBusyUSART(): char BusyUSART(void);Usart modülünün kullanımda olup olmadığını denetler. Fonksiyonun dönüş değeri;
0: 
Usart modülü aktarım yapmıyor. (transmitter is idle)
1: 
Usart modülü kullanımda.(transmitter is in use)CloseUSART(): void CloseUSART(void);Usart modülüne ait kesmeleri, transmitter ve receiver’ları devre dışı bırakır.DataRdyUSART(): char DataRdyUSART(void);
Buffer’daki data alınmaya uygun mu diye kontrol eder. Fonksiyonun dönüş değeri;
0: Data alınmaya uygun değil.
1: Data alınmaya uygun.
getsUSART(): void getsUSART(char * buffer, unsigned char len);
Haberleşme kanalından alınan len uzunluğundaki string’i *buffer adresine yazar. Bu fonksiyon sadece 8-bit transmit/receive modunda çalışır.
buffer:Gelen karakterlerin mikrodenetleyicide hangi adresten itibaren saklanacağını gösteren pointer değeridir.
len:Gelen karakterlerin sayısını belirtir. buffer adresinden itibaren len sayısı kadar alana okuma yapılır.
Örnek kullanım;char input[10];
getsUSART( input, 5);
OpenUSART(): void OpenUSART(unsigned char config, unsigned int spbrg);
Usart modülünü aktifleştirir.
config:
-Interrupt on Transmission: Karşı tarafa veri aktarımı tamamlandıktan sonra kesme oluşma durumunu belirtir.
USART_TX_INT_ON: Aktarım tamamlandığında kesme oluşacak.
USART_TX_INT_OFF: Aktarım tamamlandığında kesme oluşmayacak.
Interrupt on Receipt: Karşı taraftan veri alımı tamamlandıktan sonra kesme oluşma durumunu belirtir.
USART_RX_INT_ON: Veri alındığında kesme oluşacak.
USART_RX_INT_OFF: Veri alındığında kesme oluşmayacak.
USART Mode: Usart haberleşmesinin hangi modda gerçekleşeceğini belirtir. 2 mod olabilir;
USART_ASYNCH_MODE:  Asenkron mod
USART_SYNCH_MODE: Senkron mod
Transmission Width: Tek seferde aktarılacak verinin boyutunu belirtir.
USART_EIGHT_BIT: 8 bitlik veri aktarımı (Transmit/Receive)
USART_NINE_BIT: 9 bitlik veri aktarımı (Transmit/Receive)
Slave/Master Select: Senkron haberleşmede modunda Slave(Köle) ya da Master(Usta) olma durumunu belirler. Haberleşme master olan tarafın kontrolündedir.
USART_SYNC_SLAVE: Senkron slave modu
USART_SYNC_MASTER: Senkron master modu
Reception Mode:
USART_SINGLE_RX: Single reception
USART_CONT_RX: Continuous reception
Baud Rate: Aktarım yapılırken kullanılacak baud seviyesini belirler.  Baud, haberleşme esnasında 1 saniyede aktarılan dalga çeşidi  sayısıdır. Dolayısıyla haberleşme hızına etki eder. (Genelde 9600 kullanımı yaygındır.)
USART_BRGH_HIGH: Yüksek baud oranı
USART_BRGH_LOW: Düşük baud oranı
spbrg:
Buraya yazılan değer baud rate generator yapısından geçirilir ve baud hızı ayarlanır. Bunun için kullanılan formüller şöyle;
Asynchronous mode, high speed:FOSC / (16 * (spbrg + 1))Asynchronous mode, low speed: FOSC / (64 * (spbrg + 1))Synchronous mode: FOSC / (4 * (spbrg + 1))
Örnek kullanım;
OpenUSART1( USART_TX_INT_OFF &USART_RX_INT_OFF &USART_ASYNCH_MODE &USART_EIGHT_BIT &USART_CONT_RX &USART_BRGH_HIGH,25 );
putsUSART(): void putsUSART(char *data);
data stringini USART haberleşme kanalına koyar. Sadece 8bit transmit/receive modda çalışır.
data:Aktarılan stringi belirtir. Bu string ayrıca NULL karakterini de içerir. (Stringlerin son karakterleri nulldur.)
Örnek kullanım;putsUSART(“Hello World”);
ReadUSART(): char ReadUSART(void);
getcUSART() fonksiyonuyla aynı işi görür. getsUSART() fonksiyonunun 9 bit transmit/receive modundaki hali olarak düşünebilir(ama sadece 9 bit transmit/receive modda kullanılacak diye bir kural yoktur). Haberleşme kanalından gelen 1 byte’lık veriyi okur Eğer 9 bit transmit/receive mod kullanılıyorsa bu 1 byte’lık veriye 9. bit de dahildir.
WriteUSART(): void WriteUSART(char *data);
putcUSART() fonksiyonuyla aynı işi görür.  putsUSART() fonksiyonunun 9 bit transmit/receive modundaki hali olarak düşünebilir(ama sadece 9 bit transmit/receive modda kullanılacak diye bir kural yoktur).data değerini haberleşme kanalına koyar.
data:USART haberleşme kanalında aktarılacak değer.
baudUSART(): void baudUSART(unsigned char baudconfig);
Baud oranı konfigürasyon bitlerinin ayarlanmasında kullanılır.
baudconfig:- Clock Idle State: Haberleşme yapılmazken, hat idle seviyesindeyken hattın durumunun ne olacağını belirtir.
BAUD_IDLE_CLK_HIGH: Clock idle durumu yüksek seviyede
BAUD_IDLE_CLK_LOW: Clock idle durumu düşük seviyede
Baud Rate Generation:BAUD_16_BIT_RATE: 16 bit generation rate
BAUD_8_BIT_RATE: 8 bit generation rate
RX Pin MonitoringBAUD_WAKEUP_ON: RX pin monitored
BAUD_WAKEUP_OFF: RX pin not monitored
Baud Rate Measurement:BAUD_AUTO_ON: Auto baud rate measurement enabled
BAUD_AUTO_OFF: Auto baud rate measurement disabled

Yorumlar