APP 1 S5.

Dependencies:   mbed

UART.cpp

Committer:
IC_Blood
Date:
2016-01-10
Revision:
5:c6f70b61aea5
Child:
6:ccdbd5923e37

File content as of revision 5:c6f70b61aea5:

#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]);
//    }
//}