Dependencies:   mbed

Committer:
simon
Date:
Sun Sep 13 08:54:10 2009 +0000
Revision:
0:6b0258d76fac

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }