Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
# KPIT Embedded systems development Worksheets and Code
This Reposoty contains the worksheets and code for KPIM
# Contents
## General Notes
- [USB Debugger](Notes/USB_Debugger.md) Getting printf statements to work via the USB Debugger
## Topic 1: Development Tools
- [Introduction to VS Code](Topic1/PlatformIO_Worksheet.md) This
Covers setting up a new project in VS Code and Platform IO. We
also walk through creating a new project and uploading code to the
development boards.
- [Hello World](Topic1/HelloWorld.md) In this worksheet we write
our first code for the devices. We also discuss how we can use the
on board button to get simple user input. Finally, we use
Interrupts to get user input in a more sensible way.
- [Solution](Topic1/LightCode.cpp) Solution for the Traffic Light Task
## Topic 2: UML And OO
- [Class Based Flasher](Topic2/Worksheet1_ClassyFlasher.md) In this
task we use C++ to create a Class for Flasher Objects.
- [Extra Tasks](Topic2/ExtraTasks.md) Some notes, and a worksheet for
*optional* (but recommended) tasks. Turning our Class into a
Library, and using Inheritance.
- [Solution to UML](Topic2/Diagrams.mdj) My STARUML project file for the Flasher design task
- [Solution to Class](Topic2/FlasherCode.cpp) My Solution to the Class based flasher task
## Topic 3: MBED OS
- [Using the MBED API](Topic3/Worksheet1_API.md) In this task we look
at using the MBED API and its build in *helper* functions to let us
add functionality and write clean code.
- [Events and the EventQueue](Topic3/Worksheet2_Events.md) In this
task we take a deeper look at event driven programming. We also
make use of the EventQueue Construct to help us schedule tasks
based on events.
## Topic 4: RTOS and Concurrency
- [Threading Worksheet](Topic4/Worksheet1_RTOS.md) In this worksheet
we introduce Threading, and how we can control thread execution
- [Scheduling](Topic4/Worksheet2_Scheduling) In this worksheet we
look at scheduling algorithms, and examine how the choice of
scheduling algorithm effects a processes runtime.
- [Thread Priority](Topic4/Worksheet3_ThreadPriority.md) In this
worksheet, we examine thread priority. How do we tell the
scheduler that one task is more important than others? We also look
at the effect of thread priority with long running tasks.
- [Second Thread Priority Example](Topic4/Worksheet3_Supporting) Here
we have a second example of how modifying Thread Priority can
effect execution order.
- [Concurrency Worksheet](Concurrencty/Worksheet_Concur.md)
Tasks for Producer and Consumer problem
- [Flawed LED example](Concurrency/FlawedLed.cpp)
Example code for the Flawed LED concurrent example
- [Producer Consumer Code](Concurrency/Prodcon.cpp)
Code for Producer and Consumer Example
## Topic 5: Talking to External Devices
- [Worksheet](Topic5/Worksheet.md) Worksheet containing todays tasks
- [SimulatorTask.cpp](Topic5/SimulatorTask.cpp) Getting started code for the Simulator
- [Final Task](Topic5/FinalTask.md) Final Task of the Taught
Sessions. Designing and Developing an In-Car safety system.
- [SHT31 API](https://os.mbed.com/users/andcor02/code/Sht31/file/c84a60326ecf/Sht31.cpp)
- [SHT31 Datasheet](https://cdn-shop.adafruit.com/product-files/2857/Sensirion_Humidity_SHT3x_Datasheet_digital-767294.pdf)
- [STM Discovery Manual](STM_Manual.pdf)
- [Accelerometer API](https://os.mbed.com/users/grantphillips/code/LIS3DSH/docs/tip/classLIS3DSH.html)