Lets merge mbed with arduino. Basic arduino programming code for the Nucleo platform. Note: the code is not efficient, just take the idea.
main.cpp@0:312d60e4b87d, 2014-09-13 (annotated)
- Committer:
- jose_23991
- Date:
- Sat Sep 13 12:47:56 2014 +0000
- Revision:
- 0:312d60e4b87d
Version 1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jose_23991 | 0:312d60e4b87d | 1 | #include "mbed.h" |
jose_23991 | 0:312d60e4b87d | 2 | |
jose_23991 | 0:312d60e4b87d | 3 | /***************************************/ |
jose_23991 | 0:312d60e4b87d | 4 | |
jose_23991 | 0:312d60e4b87d | 5 | #define INPUT 0 |
jose_23991 | 0:312d60e4b87d | 6 | #define OUTPUT 1 |
jose_23991 | 0:312d60e4b87d | 7 | #define INPUT_PULLUP 2 |
jose_23991 | 0:312d60e4b87d | 8 | #define LOW 0 |
jose_23991 | 0:312d60e4b87d | 9 | #define HIGH 1 |
jose_23991 | 0:312d60e4b87d | 10 | |
jose_23991 | 0:312d60e4b87d | 11 | /***************************************/ |
jose_23991 | 0:312d60e4b87d | 12 | |
jose_23991 | 0:312d60e4b87d | 13 | void setup(); |
jose_23991 | 0:312d60e4b87d | 14 | void loop(); |
jose_23991 | 0:312d60e4b87d | 15 | void pinMode(PinName pin, int mode); |
jose_23991 | 0:312d60e4b87d | 16 | void digitalWrite(PinName pin, int value); |
jose_23991 | 0:312d60e4b87d | 17 | int digitalRead(PinName pin); |
jose_23991 | 0:312d60e4b87d | 18 | void delay(unsigned long t); |
jose_23991 | 0:312d60e4b87d | 19 | |
jose_23991 | 0:312d60e4b87d | 20 | /***************************************/ |
jose_23991 | 0:312d60e4b87d | 21 | |
jose_23991 | 0:312d60e4b87d | 22 | int main() |
jose_23991 | 0:312d60e4b87d | 23 | { |
jose_23991 | 0:312d60e4b87d | 24 | setup(); |
jose_23991 | 0:312d60e4b87d | 25 | while(1) |
jose_23991 | 0:312d60e4b87d | 26 | { |
jose_23991 | 0:312d60e4b87d | 27 | loop(); |
jose_23991 | 0:312d60e4b87d | 28 | } |
jose_23991 | 0:312d60e4b87d | 29 | } |
jose_23991 | 0:312d60e4b87d | 30 | |
jose_23991 | 0:312d60e4b87d | 31 | /***************************************/ |
jose_23991 | 0:312d60e4b87d | 32 | |
jose_23991 | 0:312d60e4b87d | 33 | // Type PinName is declared in mbed library |
jose_23991 | 0:312d60e4b87d | 34 | PinName button = USER_BUTTON; |
jose_23991 | 0:312d60e4b87d | 35 | PinName led = LED1; |
jose_23991 | 0:312d60e4b87d | 36 | |
jose_23991 | 0:312d60e4b87d | 37 | /***************************************/ |
jose_23991 | 0:312d60e4b87d | 38 | |
jose_23991 | 0:312d60e4b87d | 39 | void setup() |
jose_23991 | 0:312d60e4b87d | 40 | { |
jose_23991 | 0:312d60e4b87d | 41 | pinMode(button, INPUT_PULLUP); // Set button as input with internall pull-up |
jose_23991 | 0:312d60e4b87d | 42 | pinMode(led, OUTPUT); // Set led as output |
jose_23991 | 0:312d60e4b87d | 43 | digitalWrite(led, LOW); // Set led off |
jose_23991 | 0:312d60e4b87d | 44 | } |
jose_23991 | 0:312d60e4b87d | 45 | |
jose_23991 | 0:312d60e4b87d | 46 | void loop() |
jose_23991 | 0:312d60e4b87d | 47 | { |
jose_23991 | 0:312d60e4b87d | 48 | // Basic digitalRead |
jose_23991 | 0:312d60e4b87d | 49 | if(digitalRead(button) == LOW) |
jose_23991 | 0:312d60e4b87d | 50 | { |
jose_23991 | 0:312d60e4b87d | 51 | digitalWrite(led, HIGH); |
jose_23991 | 0:312d60e4b87d | 52 | delay(200); |
jose_23991 | 0:312d60e4b87d | 53 | } |
jose_23991 | 0:312d60e4b87d | 54 | else |
jose_23991 | 0:312d60e4b87d | 55 | digitalWrite(led, LOW); |
jose_23991 | 0:312d60e4b87d | 56 | |
jose_23991 | 0:312d60e4b87d | 57 | /* |
jose_23991 | 0:312d60e4b87d | 58 | // Basic blink |
jose_23991 | 0:312d60e4b87d | 59 | digitalWrite(led, HIGH); |
jose_23991 | 0:312d60e4b87d | 60 | delay(1000); |
jose_23991 | 0:312d60e4b87d | 61 | digitalWrite(led, LOW); |
jose_23991 | 0:312d60e4b87d | 62 | delay(1000); |
jose_23991 | 0:312d60e4b87d | 63 | */ |
jose_23991 | 0:312d60e4b87d | 64 | } |
jose_23991 | 0:312d60e4b87d | 65 | |
jose_23991 | 0:312d60e4b87d | 66 | /***************************************/ |
jose_23991 | 0:312d60e4b87d | 67 | |
jose_23991 | 0:312d60e4b87d | 68 | void pinMode(PinName pin, int mode) |
jose_23991 | 0:312d60e4b87d | 69 | { |
jose_23991 | 0:312d60e4b87d | 70 | if(mode == INPUT) |
jose_23991 | 0:312d60e4b87d | 71 | DigitalIn pm(pin); |
jose_23991 | 0:312d60e4b87d | 72 | else if(mode == INPUT_PULLUP) |
jose_23991 | 0:312d60e4b87d | 73 | DigitalIn pm(pin, PullUp); |
jose_23991 | 0:312d60e4b87d | 74 | else if(mode == OUTPUT) |
jose_23991 | 0:312d60e4b87d | 75 | DigitalOut pm(pin); |
jose_23991 | 0:312d60e4b87d | 76 | } |
jose_23991 | 0:312d60e4b87d | 77 | |
jose_23991 | 0:312d60e4b87d | 78 | void digitalWrite(PinName pin, int value) |
jose_23991 | 0:312d60e4b87d | 79 | { |
jose_23991 | 0:312d60e4b87d | 80 | DigitalOut dw(pin, value); |
jose_23991 | 0:312d60e4b87d | 81 | } |
jose_23991 | 0:312d60e4b87d | 82 | |
jose_23991 | 0:312d60e4b87d | 83 | int digitalRead(PinName pin) |
jose_23991 | 0:312d60e4b87d | 84 | { |
jose_23991 | 0:312d60e4b87d | 85 | DigitalIn dr(pin); |
jose_23991 | 0:312d60e4b87d | 86 | |
jose_23991 | 0:312d60e4b87d | 87 | return dr.read(); |
jose_23991 | 0:312d60e4b87d | 88 | } |
jose_23991 | 0:312d60e4b87d | 89 | |
jose_23991 | 0:312d60e4b87d | 90 | void delay(unsigned long t) |
jose_23991 | 0:312d60e4b87d | 91 | { |
jose_23991 | 0:312d60e4b87d | 92 | wait_ms(t); |
jose_23991 | 0:312d60e4b87d | 93 | } |