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@2:c7897a3f5f11, 2020-04-22 (annotated)
- Committer:
- demayer
- Date:
- Wed Apr 22 11:50:00 2020 +0000
- Revision:
- 2:c7897a3f5f11
- Parent:
- 1:b36bbc1c6d27
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
demayer | 0:6bf0743ece18 | 1 | #include "mbed.h" |
demayer | 0:6bf0743ece18 | 2 | #include "mbed_events.h" |
demayer | 0:6bf0743ece18 | 3 | #include "MPU9250.h" |
demayer | 0:6bf0743ece18 | 4 | |
demayer | 1:b36bbc1c6d27 | 5 | #define SAMPLE_TIME 100 |
demayer | 1:b36bbc1c6d27 | 6 | |
demayer | 0:6bf0743ece18 | 7 | DigitalOut led1(LED1); |
demayer | 0:6bf0743ece18 | 8 | InterruptIn sw(USER_BUTTON); |
demayer | 0:6bf0743ece18 | 9 | |
demayer | 2:c7897a3f5f11 | 10 | |
demayer | 2:c7897a3f5f11 | 11 | // Sensor Interrupts |
demayer | 2:c7897a3f5f11 | 12 | InterruptIn button1(D2); |
demayer | 2:c7897a3f5f11 | 13 | InterruptIn button2(D3); |
demayer | 2:c7897a3f5f11 | 14 | InterruptIn button3(D4); |
demayer | 2:c7897a3f5f11 | 15 | InterruptIn button4(D5); |
demayer | 2:c7897a3f5f11 | 16 | InterruptIn ir1(D6); |
demayer | 2:c7897a3f5f11 | 17 | |
demayer | 2:c7897a3f5f11 | 18 | |
demayer | 0:6bf0743ece18 | 19 | Thread eventthread; |
demayer | 0:6bf0743ece18 | 20 | Thread imuthread; |
demayer | 0:6bf0743ece18 | 21 | bool read_imu_isrunning; |
demayer | 0:6bf0743ece18 | 22 | |
demayer | 0:6bf0743ece18 | 23 | // Pin defines |
demayer | 0:6bf0743ece18 | 24 | DigitalOut led_green(D4); |
demayer | 0:6bf0743ece18 | 25 | |
demayer | 2:c7897a3f5f11 | 26 | Serial* pc; |
demayer | 2:c7897a3f5f11 | 27 | MPU9250* mpu9250; |
demayer | 2:c7897a3f5f11 | 28 | |
demayer | 0:6bf0743ece18 | 29 | |
demayer | 2:c7897a3f5f11 | 30 | void button1Event() |
demayer | 2:c7897a3f5f11 | 31 | { |
demayer | 2:c7897a3f5f11 | 32 | pc->printf("Button 1\n\r"); |
demayer | 2:c7897a3f5f11 | 33 | } |
demayer | 2:c7897a3f5f11 | 34 | |
demayer | 2:c7897a3f5f11 | 35 | void button2Event() |
demayer | 2:c7897a3f5f11 | 36 | { |
demayer | 2:c7897a3f5f11 | 37 | pc->printf("Button 2\n\r"); |
demayer | 2:c7897a3f5f11 | 38 | } |
demayer | 2:c7897a3f5f11 | 39 | |
demayer | 2:c7897a3f5f11 | 40 | void button3Event() |
demayer | 0:6bf0743ece18 | 41 | { |
demayer | 2:c7897a3f5f11 | 42 | pc->printf("Button 3\n\r"); |
demayer | 2:c7897a3f5f11 | 43 | } |
demayer | 2:c7897a3f5f11 | 44 | |
demayer | 2:c7897a3f5f11 | 45 | void button4Event() |
demayer | 2:c7897a3f5f11 | 46 | { |
demayer | 2:c7897a3f5f11 | 47 | pc->printf("Button 4\n\r"); |
demayer | 2:c7897a3f5f11 | 48 | } |
demayer | 2:c7897a3f5f11 | 49 | |
demayer | 2:c7897a3f5f11 | 50 | void ir1Event() |
demayer | 2:c7897a3f5f11 | 51 | { |
demayer | 2:c7897a3f5f11 | 52 | pc->printf("IR-1\n\r"); |
demayer | 2:c7897a3f5f11 | 53 | mpu9250->vx_old = 10.5; |
demayer | 2:c7897a3f5f11 | 54 | } |
demayer | 2:c7897a3f5f11 | 55 | |
demayer | 2:c7897a3f5f11 | 56 | void readIMUThread() |
demayer | 2:c7897a3f5f11 | 57 | { |
demayer | 2:c7897a3f5f11 | 58 | pc->printf("in IMU-Thread\n\r"); |
demayer | 2:c7897a3f5f11 | 59 | while(1) { |
demayer | 2:c7897a3f5f11 | 60 | pc->printf("vx: %f\n\r", mpu9250->getVBuffer()); |
demayer | 2:c7897a3f5f11 | 61 | wait(0.4); |
demayer | 0:6bf0743ece18 | 62 | } |
demayer | 0:6bf0743ece18 | 63 | } |
demayer | 0:6bf0743ece18 | 64 | |
demayer | 0:6bf0743ece18 | 65 | |
demayer | 0:6bf0743ece18 | 66 | |
demayer | 0:6bf0743ece18 | 67 | int main() |
demayer | 0:6bf0743ece18 | 68 | { |
demayer | 2:c7897a3f5f11 | 69 | pc = new Serial(USBTX, USBRX); |
demayer | 2:c7897a3f5f11 | 70 | pc->baud(9600); |
demayer | 2:c7897a3f5f11 | 71 | |
demayer | 2:c7897a3f5f11 | 72 | // Setup of IMU (Constructor calls setup-function) |
demayer | 2:c7897a3f5f11 | 73 | mpu9250 = new MPU9250(pc); |
demayer | 2:c7897a3f5f11 | 74 | |
demayer | 2:c7897a3f5f11 | 75 | imuthread.start(readIMUThread); |
demayer | 0:6bf0743ece18 | 76 | |
demayer | 0:6bf0743ece18 | 77 | // Request the shared queue |
demayer | 0:6bf0743ece18 | 78 | EventQueue *queue = mbed_event_queue(); |
demayer | 2:c7897a3f5f11 | 79 | pc->printf("Starting in context %p\r\n", Thread::gettid()); |
demayer | 2:c7897a3f5f11 | 80 | |
demayer | 0:6bf0743ece18 | 81 | |
demayer | 2:c7897a3f5f11 | 82 | button1.rise(queue->event(button1Event)); |
demayer | 2:c7897a3f5f11 | 83 | button2.rise(queue->event(button2Event)); |
demayer | 2:c7897a3f5f11 | 84 | button3.rise(queue->event(button3Event)); |
demayer | 2:c7897a3f5f11 | 85 | button4.rise(queue->event(button4Event)); |
demayer | 2:c7897a3f5f11 | 86 | ir1.rise(queue->event(ir1Event)); |
demayer | 2:c7897a3f5f11 | 87 | |
demayer | 0:6bf0743ece18 | 88 | // Setup complete, so we now dispatch the shared queue from main |
demayer | 2:c7897a3f5f11 | 89 | queue->dispatch(); |
demayer | 0:6bf0743ece18 | 90 | } |