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);
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.
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);
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.
-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.
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_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
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)
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
USART_SYNC_MASTER: Senkron master modu
- Reception Mode:
USART_SINGLE_RX: Single reception
USART_CONT_RX: Continuous 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ı
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;
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_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
BAUD_8_BIT_RATE: 8 bit generation rate
- RX Pin MonitoringBAUD_WAKEUP_ON: RX pin monitored
BAUD_WAKEUP_OFF: RX pin not 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
BAUD_AUTO_OFF: Auto baud rate measurement disabled
Kaynak:http://elkitabim.net
Yorumlar
Yorum Gönder