Lab 1 Program C

Dependents:   Lab1C

Fork of mbed by -deleted-

Committer:
simon.ford@mbed.co.uk
Date:
Thu Jan 22 18:32:40 2009 +0000
Revision:
5:62573be585e9
Parent:
4:5d1359a283bc
Child:
8:00a04e5cd407
* Added initial RPC release
* Added RTC and helper functions
* Added read_u16()/write_u16() to AnalogIn/Out
* Ticker/Timeout timing fixed!
* mbedinfo() helper added
* error() and printf() added to replace DEBUG() and ERROR()
* DigitalIn supports methods on rise/fall
* SPI and Serial support NC
* LED1-4 also map to 1-4
* Timer object reset fixed
* SPI uses single mode
* SPI3 added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon.ford@mbed.co.uk 0:82220227f4fa 1 /* mbed Microcontroller Library - Serial
simon.ford@mbed.co.uk 0:82220227f4fa 2 * Copyright (c) 2007-2008, sford
simon.ford@mbed.co.uk 0:82220227f4fa 3 */
simon.ford@mbed.co.uk 0:82220227f4fa 4
simon.ford@mbed.co.uk 0:82220227f4fa 5 #ifndef MBED_SERIAL_H
simon.ford@mbed.co.uk 0:82220227f4fa 6 #define MBED_SERIAL_H
simon.ford@mbed.co.uk 0:82220227f4fa 7
simon.ford@mbed.co.uk 0:82220227f4fa 8 #include "Stream.h"
simon.ford@mbed.co.uk 0:82220227f4fa 9
simon.ford@mbed.co.uk 0:82220227f4fa 10 namespace mbed {
simon.ford@mbed.co.uk 0:82220227f4fa 11
simon.ford@mbed.co.uk 0:82220227f4fa 12 /* Class: Serial
simon.ford@mbed.co.uk 0:82220227f4fa 13 * A serial port (UART) for communication with other serial devices
simon.ford@mbed.co.uk 0:82220227f4fa 14 */
simon.ford@mbed.co.uk 0:82220227f4fa 15 class Serial : public Stream {
simon.ford@mbed.co.uk 0:82220227f4fa 16
simon.ford@mbed.co.uk 0:82220227f4fa 17 public:
simon.ford@mbed.co.uk 0:82220227f4fa 18
simon.ford@mbed.co.uk 0:82220227f4fa 19 /* Constructor: Serial
simon.ford@mbed.co.uk 0:82220227f4fa 20 * Create a Serial port, connected to the specified transmit and receive pins
simon.ford@mbed.co.uk 0:82220227f4fa 21 *
simon.ford@mbed.co.uk 0:82220227f4fa 22 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 23 * tx - Transmit pin
simon.ford@mbed.co.uk 0:82220227f4fa 24 * rx - Receive pin
simon.ford@mbed.co.uk 0:82220227f4fa 25 *
simon.ford@mbed.co.uk 0:82220227f4fa 26 * Pin Options:
simon.ford@mbed.co.uk 5:62573be585e9 27 * (USBTX, USBRX) or (9, 10) or (13, 14) or (28, 27)
simon.ford@mbed.co.uk 5:62573be585e9 28 *
simon.ford@mbed.co.uk 5:62573be585e9 29 * Either tx or rx may be specified as NC (not connected) e.g. (9, NC)
simon.ford@mbed.co.uk 0:82220227f4fa 30 */
simon.ford@mbed.co.uk 4:5d1359a283bc 31 Serial(int tx, int rx, const char *name = NULL);
simon.ford@mbed.co.uk 0:82220227f4fa 32
simon.ford@mbed.co.uk 0:82220227f4fa 33
simon.ford@mbed.co.uk 0:82220227f4fa 34 /* Function: baud
simon.ford@mbed.co.uk 0:82220227f4fa 35 * Set the baud rate of the serial port
simon.ford@mbed.co.uk 0:82220227f4fa 36 *
simon.ford@mbed.co.uk 0:82220227f4fa 37 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 38 * baudrate - The baudrate of the serial port (default = 9600).
simon.ford@mbed.co.uk 0:82220227f4fa 39 * Standard baud rates up to 921600 are supported.
simon.ford@mbed.co.uk 0:82220227f4fa 40 */
simon.ford@mbed.co.uk 0:82220227f4fa 41 void baud(int baudrate);
simon.ford@mbed.co.uk 0:82220227f4fa 42
simon.ford@mbed.co.uk 0:82220227f4fa 43 enum Parity {
simon.ford@mbed.co.uk 0:82220227f4fa 44 None = 0,
simon.ford@mbed.co.uk 0:82220227f4fa 45 Odd = 1,
simon.ford@mbed.co.uk 0:82220227f4fa 46 Even = 2,
simon.ford@mbed.co.uk 0:82220227f4fa 47 Forced1 = 3,
simon.ford@mbed.co.uk 0:82220227f4fa 48 Forced0 = 4
simon.ford@mbed.co.uk 0:82220227f4fa 49 };
simon.ford@mbed.co.uk 0:82220227f4fa 50
simon.ford@mbed.co.uk 0:82220227f4fa 51 /* Function: format
simon.ford@mbed.co.uk 0:82220227f4fa 52 * Set the transmission format used by the Serial port
simon.ford@mbed.co.uk 0:82220227f4fa 53 *
simon.ford@mbed.co.uk 0:82220227f4fa 54 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 55 * bits - The number of bits in a word (5-8; default = 8)
simon.ford@mbed.co.uk 0:82220227f4fa 56 * parity - The type of parity used (None, Odd, Even, Forced1, Forced0; default = None)
simon.ford@mbed.co.uk 0:82220227f4fa 57 * stop - The number of stop bits (1 or 2; default = 1)
simon.ford@mbed.co.uk 0:82220227f4fa 58 */
simon.ford@mbed.co.uk 0:82220227f4fa 59 void format(int bits, int parity, int stop);
simon.ford@mbed.co.uk 0:82220227f4fa 60
simon.ford@mbed.co.uk 0:82220227f4fa 61
simon.ford@mbed.co.uk 0:82220227f4fa 62 #if 0 // Inhereted from Stream, for documentation only
simon.ford@mbed.co.uk 0:82220227f4fa 63
simon.ford@mbed.co.uk 0:82220227f4fa 64 /* Function: putc
simon.ford@mbed.co.uk 0:82220227f4fa 65 * Write a character
simon.ford@mbed.co.uk 0:82220227f4fa 66 *
simon.ford@mbed.co.uk 0:82220227f4fa 67 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 68 * c - The character to write to the serial port
simon.ford@mbed.co.uk 0:82220227f4fa 69 */
simon.ford@mbed.co.uk 0:82220227f4fa 70 int putc(int c);
simon.ford@mbed.co.uk 0:82220227f4fa 71
simon.ford@mbed.co.uk 0:82220227f4fa 72 /* Function: getc
simon.ford@mbed.co.uk 0:82220227f4fa 73 * Read a character
simon.ford@mbed.co.uk 0:82220227f4fa 74 *
simon.ford@mbed.co.uk 0:82220227f4fa 75 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 76 * returns - The character read from the serial port
simon.ford@mbed.co.uk 0:82220227f4fa 77 */
simon.ford@mbed.co.uk 0:82220227f4fa 78 int getc();
simon.ford@mbed.co.uk 0:82220227f4fa 79
simon.ford@mbed.co.uk 0:82220227f4fa 80 /* Function: printf
simon.ford@mbed.co.uk 0:82220227f4fa 81 * Write a formated string
simon.ford@mbed.co.uk 0:82220227f4fa 82 *
simon.ford@mbed.co.uk 0:82220227f4fa 83 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 84 * format - A printf-style format string, followed by the
simon.ford@mbed.co.uk 0:82220227f4fa 85 * variables to use in formating the string.
simon.ford@mbed.co.uk 0:82220227f4fa 86 */
simon.ford@mbed.co.uk 0:82220227f4fa 87 int printf(const char* format, ...);
simon.ford@mbed.co.uk 0:82220227f4fa 88
simon.ford@mbed.co.uk 0:82220227f4fa 89 /* Function: scanf
simon.ford@mbed.co.uk 0:82220227f4fa 90 * Read a formated string
simon.ford@mbed.co.uk 0:82220227f4fa 91 *
simon.ford@mbed.co.uk 0:82220227f4fa 92 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 93 * format - A scanf-style format string,
simon.ford@mbed.co.uk 0:82220227f4fa 94 * followed by the pointers to variables to store the results.
simon.ford@mbed.co.uk 0:82220227f4fa 95 */
simon.ford@mbed.co.uk 0:82220227f4fa 96 int scanf(const char* format, ...);
simon.ford@mbed.co.uk 0:82220227f4fa 97
simon.ford@mbed.co.uk 0:82220227f4fa 98 #endif
simon.ford@mbed.co.uk 0:82220227f4fa 99
simon.ford@mbed.co.uk 0:82220227f4fa 100 /* Function: readable
simon.ford@mbed.co.uk 0:82220227f4fa 101 * Determine if there is a character available to read
simon.ford@mbed.co.uk 0:82220227f4fa 102 *
simon.ford@mbed.co.uk 0:82220227f4fa 103 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 104 * returns - 1 if there is a character available to read, else 0
simon.ford@mbed.co.uk 0:82220227f4fa 105 */
simon.ford@mbed.co.uk 0:82220227f4fa 106 int readable();
simon.ford@mbed.co.uk 0:82220227f4fa 107
simon.ford@mbed.co.uk 0:82220227f4fa 108 /* Function: writeable
simon.ford@mbed.co.uk 0:82220227f4fa 109 * Determine if there is space available to write a character
simon.ford@mbed.co.uk 0:82220227f4fa 110 *
simon.ford@mbed.co.uk 0:82220227f4fa 111 * Variables:
simon.ford@mbed.co.uk 0:82220227f4fa 112 * returns - 1 if there is space to write a character, else 0
simon.ford@mbed.co.uk 0:82220227f4fa 113 */
simon.ford@mbed.co.uk 0:82220227f4fa 114 int writeable();
simon.ford@mbed.co.uk 0:82220227f4fa 115
simon.ford@mbed.co.uk 0:82220227f4fa 116 protected:
simon.ford@mbed.co.uk 0:82220227f4fa 117
simon.ford@mbed.co.uk 0:82220227f4fa 118 virtual int _getc();
simon.ford@mbed.co.uk 0:82220227f4fa 119 virtual int _putc(int c);
simon.ford@mbed.co.uk 0:82220227f4fa 120
simon.ford@mbed.co.uk 0:82220227f4fa 121 int _id;
simon.ford@mbed.co.uk 0:82220227f4fa 122
simon.ford@mbed.co.uk 0:82220227f4fa 123 };
simon.ford@mbed.co.uk 0:82220227f4fa 124
simon.ford@mbed.co.uk 0:82220227f4fa 125 }
simon.ford@mbed.co.uk 0:82220227f4fa 126
simon.ford@mbed.co.uk 1:6b7f447ca868 127 #endif
simon.ford@mbed.co.uk 1:6b7f447ca868 128