Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:6b0258d76fac, 2009-09-13 (annotated)
- Committer:
- simon
- Date:
- Sun Sep 13 08:54:10 2009 +0000
- Revision:
- 0:6b0258d76fac
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| simon | 0:6b0258d76fac | 1 | // Basic example to control scratch with mbed |
| simon | 0:6b0258d76fac | 2 | // Copyright (c) 2008-2009 sford |
| simon | 0:6b0258d76fac | 3 | // Released under the MIT License: http://mbed.org/license/mit |
| simon | 0:6b0258d76fac | 4 | |
| simon | 0:6b0258d76fac | 5 | #include "mbed.h" |
| simon | 0:6b0258d76fac | 6 | |
| simon | 0:6b0258d76fac | 7 | Serial pc(USBTX, USBRX); |
| simon | 0:6b0258d76fac | 8 | DigitalOut led1(LED1); |
| simon | 0:6b0258d76fac | 9 | |
| simon | 0:6b0258d76fac | 10 | // The scratch IO |
| simon | 0:6b0258d76fac | 11 | AnalogIn pin15(p15); |
| simon | 0:6b0258d76fac | 12 | AnalogIn pin16(p16); |
| simon | 0:6b0258d76fac | 13 | AnalogIn pin17(p17); |
| simon | 0:6b0258d76fac | 14 | AnalogIn pin18(p18); |
| simon | 0:6b0258d76fac | 15 | AnalogIn pin19(p19); |
| simon | 0:6b0258d76fac | 16 | AnalogIn pin20(p20); |
| simon | 0:6b0258d76fac | 17 | DigitalIn pin13(p13); |
| simon | 0:6b0258d76fac | 18 | DigitalIn pin14(p14); |
| simon | 0:6b0258d76fac | 19 | |
| simon | 0:6b0258d76fac | 20 | /* The format |
| simon | 0:6b0258d76fac | 21 | high byte (sent 1st) |
| simon | 0:6b0258d76fac | 22 | [ 1 | c3:0 | d9:7 ] |
| simon | 0:6b0258d76fac | 23 | low byte |
| simon | 0:6b0258d76fac | 24 | [ 0 | d6:0 ] |
| simon | 0:6b0258d76fac | 25 | */ |
| simon | 0:6b0258d76fac | 26 | void send(int channel, int data) { |
| simon | 0:6b0258d76fac | 27 | int high = 1 << 7 |
| simon | 0:6b0258d76fac | 28 | | (channel & 0xF) << 3 |
| simon | 0:6b0258d76fac | 29 | | ((data >> 7)& 0x7); |
| simon | 0:6b0258d76fac | 30 | int low = data & 0x7F; |
| simon | 0:6b0258d76fac | 31 | pc.putc(high); |
| simon | 0:6b0258d76fac | 32 | pc.putc(low); |
| simon | 0:6b0258d76fac | 33 | } |
| simon | 0:6b0258d76fac | 34 | |
| simon | 0:6b0258d76fac | 35 | int main() { |
| simon | 0:6b0258d76fac | 36 | pc.baud(38400); |
| simon | 0:6b0258d76fac | 37 | while(1) { |
| simon | 0:6b0258d76fac | 38 | pc.getc(); // wait for poll |
| simon | 0:6b0258d76fac | 39 | led1 = !led1; |
| simon | 0:6b0258d76fac | 40 | send(15, 4); // firmware |
| simon | 0:6b0258d76fac | 41 | send(0, pin20 * 1023.0); |
| simon | 0:6b0258d76fac | 42 | send(1, pin19 * 1023.0); |
| simon | 0:6b0258d76fac | 43 | send(2, pin18 * 1023.0); |
| simon | 0:6b0258d76fac | 44 | send(3, pin14 * 1023.0); |
| simon | 0:6b0258d76fac | 45 | send(4, pin17 * 1023.0); |
| simon | 0:6b0258d76fac | 46 | send(5, pin16 * 1023.0); |
| simon | 0:6b0258d76fac | 47 | send(6, pin13 * 1023.0); |
| simon | 0:6b0258d76fac | 48 | send(7, pin15 * 1023.0); |
| simon | 0:6b0258d76fac | 49 | } |
| simon | 0:6b0258d76fac | 50 | } |