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.
Dependencies: mbed PID ADXL345 Camera_LS_Y201 ITG3200 RangeFinder mbos xbee_lib Motor Servo
main.cpp@10:c8d73680b9fd, 2013-03-20 (annotated)
- Committer:
- Gaetan
- Date:
- Wed Mar 20 14:38:57 2013 +0000
- Revision:
- 10:c8d73680b9fd
- Parent:
- 8:d37c4e566cbf
- Child:
- 29:a0800d3da787
- Child:
- 32:74608bce78f6
Ajout licence + en-t?te
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Gaetan | 10:c8d73680b9fd | 1 | /* Copyright (c) 2012 - 2013 Gaëtan PLEYBER |
| Gaetan | 10:c8d73680b9fd | 2 | * |
| Gaetan | 10:c8d73680b9fd | 3 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED |
| Gaetan | 10:c8d73680b9fd | 4 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| Gaetan | 10:c8d73680b9fd | 5 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
| Gaetan | 10:c8d73680b9fd | 6 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| Gaetan | 10:c8d73680b9fd | 7 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT |
| Gaetan | 10:c8d73680b9fd | 8 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| Gaetan | 10:c8d73680b9fd | 9 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| Gaetan | 10:c8d73680b9fd | 10 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| Gaetan | 10:c8d73680b9fd | 11 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| Gaetan | 10:c8d73680b9fd | 12 | */ |
| Gaetan | 10:c8d73680b9fd | 13 | |
| Gaetan | 10:c8d73680b9fd | 14 | /* |
| Gaetan | 10:c8d73680b9fd | 15 | * Description |
| Gaetan | 10:c8d73680b9fd | 16 | * Input |
| Gaetan | 10:c8d73680b9fd | 17 | * Output |
| Gaetan | 10:c8d73680b9fd | 18 | */ |
| Gaetan | 10:c8d73680b9fd | 19 | |
| Gaetan | 6:0e3d95e9885e | 20 | /*#include "mbed.h" |
| Gaetan | 6:0e3d95e9885e | 21 | #include "mbos.h" |
| NicolasH | 0:8d93a5e4e4ab | 22 | |
| NicolasH | 0:8d93a5e4e4ab | 23 | DigitalOut myled(LED1); |
| NicolasH | 0:8d93a5e4e4ab | 24 | |
| NicolasH | 0:8d93a5e4e4ab | 25 | int main() { |
| NicolasH | 0:8d93a5e4e4ab | 26 | while(1) { |
| NicolasH | 0:8d93a5e4e4ab | 27 | myled = 1; |
| NicolasH | 0:8d93a5e4e4ab | 28 | wait(0.2); |
| NicolasH | 0:8d93a5e4e4ab | 29 | myled = 0; |
| NicolasH | 0:8d93a5e4e4ab | 30 | wait(0.2); |
| NicolasH | 7:4757e20e6f0f | 31 | |
| NicolasH | 7:4757e20e6f0f | 32 | //modification |
| NicolasH | 0:8d93a5e4e4ab | 33 | } |
| Gaetan | 6:0e3d95e9885e | 34 | }*/ |
| Gaetan | 6:0e3d95e9885e | 35 | #include "mbed.h" |
| Gaetan | 6:0e3d95e9885e | 36 | #include "mbos.h" |
| Gaetan | 6:0e3d95e9885e | 37 | |
| Gaetan | 6:0e3d95e9885e | 38 | #define TASK1_ID 1 // Id for task 1 (idle task is 0) |
| Gaetan | 6:0e3d95e9885e | 39 | #define TASK1_PRIO 50 // priority for task 1 |
| Gaetan | 6:0e3d95e9885e | 40 | #define TASK1_STACK_SZ 32 // stack size for task 1 in words |
| Gaetan | 6:0e3d95e9885e | 41 | #define TASK2_ID 2 // Id for task 2 |
| Gaetan | 6:0e3d95e9885e | 42 | #define TASK2_PRIO 60 // priority for task 2 |
| Gaetan | 6:0e3d95e9885e | 43 | #define TASK2_STACK_SZ 32 // stack size for task 2 in words |
| Gaetan | 6:0e3d95e9885e | 44 | #define TIMER0_ID 0 // Id for timer 0 |
| Gaetan | 6:0e3d95e9885e | 45 | #define TIMER0_PERIOD 1000 // Time period in milliseconds |
| Gaetan | 6:0e3d95e9885e | 46 | #define TIMER0_EVENT 1 // Event flag (1 << 0) |
| Gaetan | 6:0e3d95e9885e | 47 | #define T1_TO_T2_EVENT 2 // Event flag (1 << 1) |
| Gaetan | 6:0e3d95e9885e | 48 | |
| Gaetan | 6:0e3d95e9885e | 49 | void task1(void); // task function prototypes |
| Gaetan | 6:0e3d95e9885e | 50 | void task2(void); |
| Gaetan | 6:0e3d95e9885e | 51 | |
| Gaetan | 6:0e3d95e9885e | 52 | DigitalOut led1(LED1); |
| Gaetan | 6:0e3d95e9885e | 53 | DigitalOut led2(LED2); |
| Gaetan | 6:0e3d95e9885e | 54 | mbos os(2, 1); // Instantiate mbos with 2 tasks & 1 timer |
| Gaetan | 6:0e3d95e9885e | 55 | |
| Gaetan | 6:0e3d95e9885e | 56 | int main(void) |
| Gaetan | 6:0e3d95e9885e | 57 | { |
| Gaetan | 6:0e3d95e9885e | 58 | // Configure tasks and timers |
| Gaetan | 6:0e3d95e9885e | 59 | os.CreateTask(TASK1_ID, TASK1_PRIO, TASK1_STACK_SZ, task1); |
| Gaetan | 6:0e3d95e9885e | 60 | os.CreateTask(TASK2_ID, TASK2_PRIO, TASK2_STACK_SZ, task2); |
| Gaetan | 6:0e3d95e9885e | 61 | os.CreateTimer(TIMER0_ID, TIMER0_EVENT, TASK1_ID); |
| Gaetan | 6:0e3d95e9885e | 62 | // Start mbos |
| Gaetan | 6:0e3d95e9885e | 63 | os.Start(); |
| Gaetan | 6:0e3d95e9885e | 64 | // never return! |
| NicolasH | 0:8d93a5e4e4ab | 65 | } |
| Gaetan | 6:0e3d95e9885e | 66 | |
| Gaetan | 6:0e3d95e9885e | 67 | void task1(void) |
| Gaetan | 6:0e3d95e9885e | 68 | { |
| Gaetan | 6:0e3d95e9885e | 69 | os.SetTimer(TIMER0_ID, TIMER0_PERIOD, TIMER0_PERIOD); |
| Gaetan | 6:0e3d95e9885e | 70 | while(1){ |
| Gaetan | 6:0e3d95e9885e | 71 | os.WaitEvent(TIMER0_EVENT); |
| Gaetan | 6:0e3d95e9885e | 72 | led1 = !led1; |
| Gaetan | 6:0e3d95e9885e | 73 | os.SetEvent(T1_TO_T2_EVENT, TASK2_ID); |
| Gaetan | 6:0e3d95e9885e | 74 | } |
| Gaetan | 6:0e3d95e9885e | 75 | } |
| Gaetan | 6:0e3d95e9885e | 76 | |
| Gaetan | 6:0e3d95e9885e | 77 | void task2(void) |
| Gaetan | 6:0e3d95e9885e | 78 | { |
| Gaetan | 6:0e3d95e9885e | 79 | while(1){ |
| Gaetan | 6:0e3d95e9885e | 80 | os.WaitEvent(T1_TO_T2_EVENT); |
| Gaetan | 6:0e3d95e9885e | 81 | led2 = 1; |
| Gaetan | 6:0e3d95e9885e | 82 | wait_ms(100); |
| Gaetan | 6:0e3d95e9885e | 83 | led2 = 0; |
| Gaetan | 6:0e3d95e9885e | 84 | } |
| Gaetan | 6:0e3d95e9885e | 85 | } |
| Gaetan | 6:0e3d95e9885e | 86 | /*@endcode |
| Gaetan | 6:0e3d95e9885e | 87 | */ |
