?? uart.c
字號:
// UART functions for SDCC by Chin-Shiuh Shieh on 2001-01-01// Modified by Greg Hunter on 2007-09-19 for Nordic nRF24E1// uart_init() should be called before using UART// No syntax error handling// Comment un-used functions to reduce code size#include "regs24e1.h"#include "uart.h"void uart_init(void) // Set UART Baud Rate to 19200 bps{ TH1 =243; // 19200@16MHz (when T1M=1 and SMOD=1) CKCON |= 0x10; // T1M=1 (/4 timer clock) PCON = 0x80; // SMOD=1 (double baud rate) SCON = 0x52; // Serial mode1, enable receiver TMOD = 0x20; // Timer1 8bit auto reload TR1 = 1; // Start timer1 P0_DIR |= 0x02; // P0.1 (RxD) is an input P0_ALT |= 0x06; // Select alternate functions on pins P0.1 and P0.2}void uart_putc(char c) // Put Character to UART{while(TI==0);TI=0;SBUF=c;}/*char uart_getc(void) // Get Character from UART{while(RI==0);RI=0;return SBUF;}*//*char uart_getce(void) // Get Character from UART with Echo, Require uart_putc(){while(RI==0);RI=0;uart_putc(SBUF);return SBUF;}*/void uart_puts(char *s) // Put String to UART, Require uart_putc(){while(*s!=0){uart_putc(*s);s++;}}/*void uart_gets(char *s) // Get String from UART, Require uart_getce(){while(((*s)=uart_getce())!=13)s++;*s=0;}*/void i2s(int i,char *s) // Convert Integer to String{char sign;short len;char *p;sign='+';len=0;p=s;if(i<0){sign='-';i=-i;}do{*s=(i%10)+'0';s++;len++;i/=10;}while(i!=0);if(sign=='-'){*s='-';s++;len++;}for(i=0;i<len/2;i++){p[len]=p[i];p[i]=p[len-1-i];p[len-1-i]=p[len];}p[len]=0;}/*int s2i(char *s) // Convert String to Integer{int i=0;char sign='+';if(*s=='-'){sign='-';s++;}while(*s!=0){i=i*10+(*s-'0');s++;}if(sign=='-')i=-i;return i;}*/void uart_puti(int i) // Put Integer to UART, Require i2s(),uart_puts(){char s[7];i2s(i,s);uart_puts(s);}/*int uart_geti() // Get Integer from UART, Require uart_gets(),s2i(){char s[7];uart_gets(s);return s2i(s);}*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -