Vincent Belanger
/
APP
APP 1 S5.
Diff: UART.cpp
- Revision:
- 5:c6f70b61aea5
- Child:
- 6:ccdbd5923e37
diff -r 000000000000 -r c6f70b61aea5 UART.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UART.cpp Sun Jan 10 18:21:11 2016 +0000 @@ -0,0 +1,222 @@ +#include <UART.h> +#include <stdio.h> + +//#define BAUD_RATE 9600 +//#define IN_BUF_SIZE 256 + +//#define TRUE 1 +//#define FALSE 0 + +//static unsigned char inbuf[IN_BUF_SIZE]; +//static unsigned char qin = 0; +//static unsigned char qout = 0; + +//static char flag_rx_waiting_for_stop_bit; +//static char flag_rx_off; +//static char rx_mask; +//static char flag_rx_ready; +//static char flag_tx_ready; +//static char timer_rx_ctr; +//static char timer_tx_ctr; +//static char bits_left_in_rx; +//static char bits_left_in_tx; +//static char rx_num_of_bits; +//static char tx_num_of_bits; +//static int internal_rx_buffer; +//static int internal_tx_buffer; +//static int user_tx_buffer; + +UART::UART (int baud_rate) +{ + baudRate = 9600; +} + +//void UART::initUart() +//{ +// flag_tx_ready = FALSE; +// flag_rx_ready = FALSE; +// flag_rx_waiting_for_stop_bit = FALSE; +// flag_rx_off = FALSE; +// rx_num_of_bits = 10; +// tx_num_of_bits = 10; + +// set_tx_pin_low(); + //ticker.attach_us(&timer_isr, 1000000.0 / (BAUD_RATE * 3.0)); +//} + + +//DigitalOut TX(p25); +//DigitalIn RX(p26); +//Ticker ticker; + +//Serial pc(USBTX, USBRX); + + +//Background functions to execute while waiting for input. +//void idle(){ +// wait_us(1.0); +//} + +//Sets the transmit pin to the high state. +//void set_tx_pin_high() { +// TX = 1; +//} + +//Sets the transmit pin to the low state. +//void UART::set_tx_pin_low() +//{ +// TX = 0; +//} + +//Returns 0 or 1 dependent on whether the receive pin is high or low +//int get_rx_pin_status() { +// return RX.read(); +//} + +//void timer_isr(void) +// { +// char mask, start_bit, flag_in; +// + +// Transmitter Section +// if ( flag_tx_ready ) +// { +// +// if ( --timer_tx_ctr<=0 ) +// { +// mask = internal_tx_buffer&1; +// internal_tx_buffer >>= 1; +// if ( mask ) +// { +// set_tx_pin_high(); +// } +// else +// { +// set_tx_pin_low(); +// } +// timer_tx_ctr = 3; +// if ( --bits_left_in_tx<=0 ) +// { +// flag_tx_ready = FALSE; +// } +// } +// } +// Receiver Section +// if ( flag_rx_off==FALSE ) +// { +// if ( flag_rx_waiting_for_stop_bit ) +// { +// if ( --timer_rx_ctr<=0 ) +// { +// flag_rx_waiting_for_stop_bit = FALSE; +// flag_rx_ready = FALSE; +// internal_rx_buffer &= 0xFF; +// if ( internal_rx_buffer!=0xC2 ) +// { +// inbuf[qin] = internal_rx_buffer; +// if ( ++qin>=IN_BUF_SIZE ) +// { +// qin = 0; +// } +// } +// } +// } +// else // rx_test_busy +// { +// if ( flag_rx_ready==FALSE ) +// { +// start_bit = get_rx_pin_status(); +// Test for Start Bit +// if ( start_bit==0 ) +// { +// flag_rx_ready = TRUE; +// internal_rx_buffer = 0; +// timer_rx_ctr = 4; +// bits_left_in_rx = rx_num_of_bits; +// rx_mask = 1; +// } +// } +// else // rx_busy +// { +// if ( --timer_rx_ctr<=0 ) +// { // rcv +// timer_rx_ctr = 3; +// flag_in = get_rx_pin_status(); +// if ( flag_in ) +// { +// internal_rx_buffer |= rx_mask; +// } +// rx_mask <<= 1; +// if ( --bits_left_in_rx<=0 ) +// { +// flag_rx_waiting_for_stop_bit = TRUE; +// } +// } +// } +// } +// } +// } + +//char _getchar( void ) +// { +// char ch; + +// do +// { +// while ( qout==qin ) +// { +// idle(); +// } +// ch = inbuf[qout] & 0xFF; +// if ( ++qout>=IN_BUF_SIZE ) +// { +// qout = 0; +// } +// } +// while ( ch==0x0A || ch==0xC2 ); +// return( ch ); +// } + +//void _putchar( int ch ) +// { +// while ( flag_tx_ready ); +// user_tx_buffer = ch; + +// invoke_UART_transmit +// timer_tx_ctr = 3; +// bits_left_in_tx = tx_num_of_bits; +// internal_tx_buffer = (user_tx_buffer<<1) | 0x200;; +// flag_tx_ready = TRUE; +// } + +//void flush_input_buffer( void ) +// { +// qin = 0; +// qout = 0; +// } + +//char kbhit( void ) +// { +// return( qin!=qout ); +// } + +//void turn_rx_on( void ) +// { +// flag_rx_off = FALSE; +// } + +//void turn_rx_off( void ) +// { +// flag_rx_off = TRUE; +// } + +//void printStr(char* str) +//{ +// int i = 0; +// int len = strlen(str); +// for(i = 0; i<len; i++) +// { +// wait(0.01); +// _putchar(str[i]); +// } +//} \ No newline at end of file