diff --git a/Future/Session4_ThreadSignals/src/main.cpp b/Future/Session4_ThreadSignals/src/main.cpp deleted file mode 100644 index 88b41e3..0000000 --- a/Future/Session4_ThreadSignals/src/main.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include - - -DigitalOut led1(LED1); -DigitalOut led2(LED2); -DigitalOut led3(LED3); - -//Create an empty thread object ready to attach a function -Thread thread; -Thread thread2; - -//Function to deal with blinking the second LED -void led2_thread() { - //Loop forever - while (true) { - led2 = !led2; - thread_sleep_for(1000); - thread2.signal_set(0x42); - } -} - -void led3_thread() { - //Loop forever - while (1){ - thread2.signal_wait(0x42); - for (int x=0; x<5; x++) { - led3 = !led3; - thread_sleep_for(100); - } - } -} - - - -//Main Program -int main() { - //Attach the function to the Thread then Start it - thread.start(led2_thread); - thread2.start(led3_thread); - while (true) { - led1 = !led1; - thread_sleep_for(500); - } -} diff --git a/Future/Session4_BasicThreads/.gitignore b/Session4/BasicThreads/.gitignore similarity index 100% rename from Future/Session4_BasicThreads/.gitignore rename to Session4/BasicThreads/.gitignore diff --git a/Session4/BasicThreads/.mbedignore b/Session4/BasicThreads/.mbedignore new file mode 100644 index 0000000..fe58d10 --- /dev/null +++ b/Session4/BasicThreads/.mbedignore @@ -0,0 +1,83 @@ +/* Bootloader */ +mbed-os/features/FEATURE_BOOTLOADER/* + +/* BLE */ +mbed-os/connectivity/drivers/ble/* +mbed-os/connectivity/FEATURE_BLE/* + +/* Cellular */ +mbed-os/connectivity/cellular/* +mbed-os/connectivity/drivers/cellular/* +mbed-os/connectivity/netsocket/source/Cellular*.* + +/* Device Key */ +mbed-os/drivers/device_key/* + +/* Experimental */ +mbed-os/platform/FEATURE_EXPERIMENTAL_API/* + +/* FPGA */ +mbed-os/features/frameworks/COMPONENT_FPGA_CI_TEST_SHIELD/* + +/* Greentea client */ +mbed-os/features/frameworks/greentea-client/* + +/* LORAWAN */ +mbed-os/connectivity/drivers/lora/* +mbed-os/connectivity/lorawan/* + +/* LWIP */ +mbed-os/connectivity/drivers/emac/* +mbed-os/connectivity/lwipstack/* + +/* Mbed-client-cli */ +mbed-os/features/frameworks/mbed-client-cli/* + +/* MBED TLS */ +mbed-os/connectivity/drivers/mbedtls/* +mbed-os/connectivity/mbedtls/* + +/* Nanostack */ +mbed-os/connectivity/drivers/emac/* +mbed-os/connectivity/libraries/mbed-coap/* +mbed-os/connectivity/libraries/nanostack-libservice/* +mbed-os/connectivity/libraries/ppp/* +mbed-os/connectivity/nanostack/* + +/* Netsocket */ +mbed-os/connectivity/drivers/emac/* +mbed-os/connectivity/netsocket/* +mbed-os/connectivity/libraries/mbed-coap/* +mbed-os/connectivity/libraries/ppp/* + +/* NFC */ +mbed-os/connectivity/drivers/nfc/* +mbed-os/connectivity/nfc/* + +/* RF */ +/*mbed-os/connectivity/drivers/802.15.4_RF/* */ + +/* Storage */ +mbed-os/storage/filesystem/* +mbed-os/storage/kvstore/* +mbed-os/storage/platform/* + +/* Tests */ +mbed-os/platform/tests/* +mbed-os/TEST_APPS/* +mbed-os/TESTS/* +mbed-os/UNITTESTS/* + +/* Unity */ +mbed-os/features/frameworks/unity/* + +/* Utest */ +mbed-os/features/frameworks/utest/* + +/* USB */ +mbed-os/drivers/usb/source/* +mbed-os/hal/usb/source/* +mbed-os/hal/usb/TARGET_Templates/* + +/* WiFi */ +mbed-os/connectivity/drivers/wifi/* \ No newline at end of file diff --git a/Future/Session4_BasicThreads/.vscode/extensions.json b/Session4/BasicThreads/.vscode/extensions.json similarity index 100% rename from Future/Session4_BasicThreads/.vscode/extensions.json rename to Session4/BasicThreads/.vscode/extensions.json diff --git a/Future/Session4_BasicThreads/include/README b/Session4/BasicThreads/include/README similarity index 100% rename from Future/Session4_BasicThreads/include/README rename to Session4/BasicThreads/include/README diff --git a/Future/Session4_BasicThreads/lib/README b/Session4/BasicThreads/lib/README similarity index 100% rename from Future/Session4_BasicThreads/lib/README rename to Session4/BasicThreads/lib/README diff --git a/Future/Session4_BasicThreads/platformio.ini b/Session4/BasicThreads/platformio.ini similarity index 76% rename from Future/Session4_BasicThreads/platformio.ini rename to Session4/BasicThreads/platformio.ini index 7213255..b54c79a 100644 --- a/Future/Session4_BasicThreads/platformio.ini +++ b/Session4/BasicThreads/platformio.ini @@ -12,4 +12,9 @@ platform = ststm32 board = nucleo_f401re framework = mbed -build_flags = -D PIO_FRAMEWORK_MBED_RTOS_PRESENT +;build_flags = -D PIO_FRAMEWORK_MBED_RTOS_PRESENT + +;[env:nucleo_f746zg] +;platform = ststm32 +;board = nucleo_f746zg +;framework = mbed \ No newline at end of file diff --git a/Future/Session4_BasicThreads/src/main.cpp b/Session4/BasicThreads/src/main.cpp similarity index 100% rename from Future/Session4_BasicThreads/src/main.cpp rename to Session4/BasicThreads/src/main.cpp diff --git a/Future/Session4_BasicThreads/test/README b/Session4/BasicThreads/test/README similarity index 100% rename from Future/Session4_BasicThreads/test/README rename to Session4/BasicThreads/test/README diff --git a/Future/Session4_ThreadSignals/.gitignore b/Session4/ThreadSignals/.gitignore similarity index 100% rename from Future/Session4_ThreadSignals/.gitignore rename to Session4/ThreadSignals/.gitignore diff --git a/Session4/ThreadSignals/.mbedignore b/Session4/ThreadSignals/.mbedignore new file mode 100644 index 0000000..fe58d10 --- /dev/null +++ b/Session4/ThreadSignals/.mbedignore @@ -0,0 +1,83 @@ +/* Bootloader */ +mbed-os/features/FEATURE_BOOTLOADER/* + +/* BLE */ +mbed-os/connectivity/drivers/ble/* +mbed-os/connectivity/FEATURE_BLE/* + +/* Cellular */ +mbed-os/connectivity/cellular/* +mbed-os/connectivity/drivers/cellular/* +mbed-os/connectivity/netsocket/source/Cellular*.* + +/* Device Key */ +mbed-os/drivers/device_key/* + +/* Experimental */ +mbed-os/platform/FEATURE_EXPERIMENTAL_API/* + +/* FPGA */ +mbed-os/features/frameworks/COMPONENT_FPGA_CI_TEST_SHIELD/* + +/* Greentea client */ +mbed-os/features/frameworks/greentea-client/* + +/* LORAWAN */ +mbed-os/connectivity/drivers/lora/* +mbed-os/connectivity/lorawan/* + +/* LWIP */ +mbed-os/connectivity/drivers/emac/* +mbed-os/connectivity/lwipstack/* + +/* Mbed-client-cli */ +mbed-os/features/frameworks/mbed-client-cli/* + +/* MBED TLS */ +mbed-os/connectivity/drivers/mbedtls/* +mbed-os/connectivity/mbedtls/* + +/* Nanostack */ +mbed-os/connectivity/drivers/emac/* +mbed-os/connectivity/libraries/mbed-coap/* +mbed-os/connectivity/libraries/nanostack-libservice/* +mbed-os/connectivity/libraries/ppp/* +mbed-os/connectivity/nanostack/* + +/* Netsocket */ +mbed-os/connectivity/drivers/emac/* +mbed-os/connectivity/netsocket/* +mbed-os/connectivity/libraries/mbed-coap/* +mbed-os/connectivity/libraries/ppp/* + +/* NFC */ +mbed-os/connectivity/drivers/nfc/* +mbed-os/connectivity/nfc/* + +/* RF */ +/*mbed-os/connectivity/drivers/802.15.4_RF/* */ + +/* Storage */ +mbed-os/storage/filesystem/* +mbed-os/storage/kvstore/* +mbed-os/storage/platform/* + +/* Tests */ +mbed-os/platform/tests/* +mbed-os/TEST_APPS/* +mbed-os/TESTS/* +mbed-os/UNITTESTS/* + +/* Unity */ +mbed-os/features/frameworks/unity/* + +/* Utest */ +mbed-os/features/frameworks/utest/* + +/* USB */ +mbed-os/drivers/usb/source/* +mbed-os/hal/usb/source/* +mbed-os/hal/usb/TARGET_Templates/* + +/* WiFi */ +mbed-os/connectivity/drivers/wifi/* \ No newline at end of file diff --git a/Future/Session4_ThreadSignals/.vscode/extensions.json b/Session4/ThreadSignals/.vscode/extensions.json similarity index 100% rename from Future/Session4_ThreadSignals/.vscode/extensions.json rename to Session4/ThreadSignals/.vscode/extensions.json diff --git a/Future/Session4_ThreadSignals/include/README b/Session4/ThreadSignals/include/README similarity index 100% rename from Future/Session4_ThreadSignals/include/README rename to Session4/ThreadSignals/include/README diff --git a/Future/Session4_ThreadSignals/lib/README b/Session4/ThreadSignals/lib/README similarity index 100% rename from Future/Session4_ThreadSignals/lib/README rename to Session4/ThreadSignals/lib/README diff --git a/Future/Session4_ThreadSignals/platformio.ini b/Session4/ThreadSignals/platformio.ini similarity index 63% rename from Future/Session4_ThreadSignals/platformio.ini rename to Session4/ThreadSignals/platformio.ini index 53a9732..163f44b 100644 --- a/Future/Session4_ThreadSignals/platformio.ini +++ b/Session4/ThreadSignals/platformio.ini @@ -8,8 +8,15 @@ ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html -[env:nucleo_f746zg] + +[env:nucleo_f401re] platform = ststm32 -board = nucleo_f746zg +board = nucleo_f401re framework = mbed -build_flags = -D PIO_FRAMEWORK_MBED_RTOS_PRESENT \ No newline at end of file +;build_flags = -D PIO_FRAMEWORK_MBED_RTOS_PRESENT + +;[env:nucleo_f746zg] +;platform = ststm32 +;board = nucleo_f746zg +;framework = mbed +;build_flags = -D PIO_FRAMEWORK_MBED_RTOS_PRESENT diff --git a/Session4/ThreadSignals/src/main.cpp b/Session4/ThreadSignals/src/main.cpp new file mode 100644 index 0000000..6abc72b --- /dev/null +++ b/Session4/ThreadSignals/src/main.cpp @@ -0,0 +1,57 @@ +#include + + +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); + +// Interrupt Handler +InterruptIn theButton(BUTTON1); + +//Create an empty thread object ready to attach a function +Thread thread; +Thread thread2; + +//Function to deal with blinking the second LED +void led2_thread() { + //Loop forever + while (true) { + led2 = !led2; + thread_sleep_for(5000); + + // Set a Signal to blink LED3 + thread2.flags_set(0x42); + } +} + +void led3_thread() { + //Loop forever. + while (1){ + //With for the Signal before continuing + ThisThread::flags_wait_any(0x42); + for (int x=0; x<5; x++) { + led3 = !led3; + thread_sleep_for(100); + } + } +} + +void buttonHandler(){ + // Button handler interrupt, also sets flags. + thread2.flags_set(0x42); +} + +//Main Program +int main() { + + //Bind the interupt to a function + theButton.rise(&buttonHandler); + + //Attach the function to the Thread then Start it + thread.start(led2_thread); + thread2.start(led3_thread); + while (true) { + led1 = !led1; + thread_sleep_for(500); + } +} diff --git a/Future/Session4_ThreadSignals/test/README b/Session4/ThreadSignals/test/README similarity index 100% rename from Future/Session4_ThreadSignals/test/README rename to Session4/ThreadSignals/test/README