PES4 / Mbed OS Queue_02
Committer:
demayer
Date:
Sat Apr 11 08:15:48 2020 +0000
Revision:
1:b36bbc1c6d27
Parent:
0:6bf0743ece18
IMU-library in .h und .cpp file aufgeteilt

Who changed what in which revision?

UserRevisionLine numberNew 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 0:6bf0743ece18 10 Thread eventthread;
demayer 0:6bf0743ece18 11 Thread imuthread;
demayer 0:6bf0743ece18 12 bool read_imu_isrunning;
demayer 0:6bf0743ece18 13
demayer 0:6bf0743ece18 14
demayer 0:6bf0743ece18 15 // Pin defines
demayer 0:6bf0743ece18 16 DigitalOut led_green(D4);
demayer 0:6bf0743ece18 17
demayer 0:6bf0743ece18 18 //-----------------------------------------------------
demayer 0:6bf0743ece18 19 //IMU
demayer 0:6bf0743ece18 20 //-----------------------------------------------------
demayer 0:6bf0743ece18 21
demayer 0:6bf0743ece18 22 void rise_handler(void)
demayer 0:6bf0743ece18 23 {
demayer 0:6bf0743ece18 24 printf("rise_handler in context %p\r\n", Thread::gettid());
demayer 0:6bf0743ece18 25 // Toggle LED
demayer 0:6bf0743ece18 26 led1 = !led1;
demayer 0:6bf0743ece18 27 for (int i = 0; i<10; i++) {
demayer 0:6bf0743ece18 28 led_green = !led_green;
demayer 0:6bf0743ece18 29 wait(0.5);
demayer 0:6bf0743ece18 30 }
demayer 0:6bf0743ece18 31 }
demayer 0:6bf0743ece18 32
demayer 0:6bf0743ece18 33 void fall_handler(void)
demayer 0:6bf0743ece18 34 {
demayer 0:6bf0743ece18 35 printf("fall_handler in context %p\r\n", Thread::gettid());
demayer 0:6bf0743ece18 36 // Toggle LED
demayer 0:6bf0743ece18 37 led1 = !led1;
demayer 0:6bf0743ece18 38 }
demayer 0:6bf0743ece18 39
demayer 0:6bf0743ece18 40
demayer 0:6bf0743ece18 41
demayer 0:6bf0743ece18 42
demayer 0:6bf0743ece18 43
demayer 0:6bf0743ece18 44
demayer 0:6bf0743ece18 45 int main()
demayer 0:6bf0743ece18 46 {
demayer 1:b36bbc1c6d27 47 //pc.baud(9600);
demayer 1:b36bbc1c6d27 48 //imuSetup();
demayer 1:b36bbc1c6d27 49 //imuthread.start(readIMU);
demayer 0:6bf0743ece18 50
demayer 0:6bf0743ece18 51 // Request the shared queue
demayer 0:6bf0743ece18 52 EventQueue *queue = mbed_event_queue();
demayer 1:b36bbc1c6d27 53 //printf("Starting in context %p\r\n", Thread::gettid());
demayer 0:6bf0743ece18 54
demayer 0:6bf0743ece18 55 // The 'rise' handler will execute in IRQ context
demayer 0:6bf0743ece18 56 sw.rise(queue->event(rise_handler));
demayer 0:6bf0743ece18 57 // The 'fall' handler will execute in the context of the shared queue (actually the main thread)
demayer 0:6bf0743ece18 58 sw.fall(queue->event(fall_handler));
demayer 0:6bf0743ece18 59 // Setup complete, so we now dispatch the shared queue from main
demayer 0:6bf0743ece18 60 queue->dispatch_forever();
demayer 0:6bf0743ece18 61 }