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:
11:1c1ebd0324fa
* 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 - Timer
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_TIMER_H
simon.ford@mbed.co.uk 0:82220227f4fa 6 #define MBED_TIMER_H
simon.ford@mbed.co.uk 0:82220227f4fa 7
simon.ford@mbed.co.uk 0:82220227f4fa 8 #include "Base.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: Timer
simon.ford@mbed.co.uk 0:82220227f4fa 13 * A general purpose timer
simon.ford@mbed.co.uk 0:82220227f4fa 14 */
simon.ford@mbed.co.uk 0:82220227f4fa 15 class Timer : public Base {
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 4:5d1359a283bc 19 Timer(const char *name = NULL);
simon.ford@mbed.co.uk 0:82220227f4fa 20
simon.ford@mbed.co.uk 0:82220227f4fa 21 /* Group: Access Methods */
simon.ford@mbed.co.uk 0:82220227f4fa 22
simon.ford@mbed.co.uk 0:82220227f4fa 23 /* Function: start
simon.ford@mbed.co.uk 0:82220227f4fa 24 * Start the timer
simon.ford@mbed.co.uk 0:82220227f4fa 25 */
simon.ford@mbed.co.uk 0:82220227f4fa 26 void start();
simon.ford@mbed.co.uk 0:82220227f4fa 27
simon.ford@mbed.co.uk 0:82220227f4fa 28 /* Function: stop
simon.ford@mbed.co.uk 0:82220227f4fa 29 * Stop the timer
simon.ford@mbed.co.uk 0:82220227f4fa 30 */
simon.ford@mbed.co.uk 0:82220227f4fa 31 void stop();
simon.ford@mbed.co.uk 0:82220227f4fa 32
simon.ford@mbed.co.uk 0:82220227f4fa 33 /* Function: reset
simon.ford@mbed.co.uk 0:82220227f4fa 34 * Reset the timer to 0.
simon.ford@mbed.co.uk 0:82220227f4fa 35 *
simon.ford@mbed.co.uk 0:82220227f4fa 36 * If it was already counting, it will continue
simon.ford@mbed.co.uk 0:82220227f4fa 37 */
simon.ford@mbed.co.uk 0:82220227f4fa 38 void reset();
simon.ford@mbed.co.uk 0:82220227f4fa 39
simon.ford@mbed.co.uk 0:82220227f4fa 40 /* Function: read
simon.ford@mbed.co.uk 0:82220227f4fa 41 * Get the time passed in seconds
simon.ford@mbed.co.uk 0:82220227f4fa 42 */
simon.ford@mbed.co.uk 0:82220227f4fa 43 float read();
simon.ford@mbed.co.uk 0:82220227f4fa 44
simon.ford@mbed.co.uk 0:82220227f4fa 45 /* Function: read_ms
simon.ford@mbed.co.uk 0:82220227f4fa 46 * Get the time passed in mili-seconds
simon.ford@mbed.co.uk 0:82220227f4fa 47 */
simon.ford@mbed.co.uk 0:82220227f4fa 48 int read_ms();
simon.ford@mbed.co.uk 0:82220227f4fa 49
simon.ford@mbed.co.uk 0:82220227f4fa 50 /* Function: read_us
simon.ford@mbed.co.uk 0:82220227f4fa 51 * Get the time passed in micro-seconds
simon.ford@mbed.co.uk 0:82220227f4fa 52 */
simon.ford@mbed.co.uk 0:82220227f4fa 53 int read_us();
simon.ford@mbed.co.uk 0:82220227f4fa 54
simon.ford@mbed.co.uk 0:82220227f4fa 55 operator float();
simon.ford@mbed.co.uk 0:82220227f4fa 56
simon.ford@mbed.co.uk 0:82220227f4fa 57 int slicetime();
simon.ford@mbed.co.uk 0:82220227f4fa 58
simon.ford@mbed.co.uk 5:62573be585e9 59 int _running; // whether the timer is running
simon.ford@mbed.co.uk 0:82220227f4fa 60 unsigned int _start; // the start time of the latest slice
simon.ford@mbed.co.uk 0:82220227f4fa 61 int _time; // any accumulated time from previous slices
simon.ford@mbed.co.uk 0:82220227f4fa 62
simon.ford@mbed.co.uk 5:62573be585e9 63 virtual const struct rpc_method *get_rpc_methods();
simon.ford@mbed.co.uk 5:62573be585e9 64 static struct rpc_class *get_rpc_class();
simon.ford@mbed.co.uk 5:62573be585e9 65
simon.ford@mbed.co.uk 0:82220227f4fa 66 };
simon.ford@mbed.co.uk 0:82220227f4fa 67
simon.ford@mbed.co.uk 0:82220227f4fa 68 }
simon.ford@mbed.co.uk 0:82220227f4fa 69
simon.ford@mbed.co.uk 1:6b7f447ca868 70 #endif
simon.ford@mbed.co.uk 1:6b7f447ca868 71