Recently Updated Pages
Queues
This article provides examples of using RTOS Queues. Why RTOS Queues There are standard queues,...
LAB: RC Car Infrastructure
We are now on a roll . . . we are now going to work with multiple controllers that are interfaced...
UART
Objective The objective of this lesson is to understand UART, and use two boards and setup UART ...
CANTools
CANTools is a Python project that can read DBC files, and provide a lot of useful information. h...
Function Pointer
Pointers Pointers are the data types that can be used to store the address of some data stored i...
Lab: SPI Flash Interface
The objective is to learn how to create a thread-safe driver for Synchronous Serial Port and to ...
Clock Systems and Timing
Clock System & Timing A crystal oscillator is typically used to drive a processor's clock. Y...
LAB: CAN bus
Objective Get a practical experience with CAN bus communication Create hardware circuitry nece...
Nested Vector Interrupt Controller (NVIC)
Objective This tutorial demonstrates how to use interrupts on a processor. In general, you will ...
Bitmasking
Bit-masking is a technique to selectively modify individual bits without affecting other bits. ...
FreeRTOS & Tasks
Introduction to FreeRTOS Objective To introduce what, why, when, and how to use Real Time Opera...
Git Basics
What is Gitlab? Gitlab provides services that allow hosting your project on a remote repository ...
LAB: Git
This is definitely not an exhaustive tutorial about learning Git... Google would be better to rev...
LAB: CAN bus with DBC
Objective of this lab is to: Define CAN message types in a DBC file Auto-generate code base...
CmpE243 - What is it about?
CmpE243 is a fast-paced course, with lots to learn that will push your technical and communi...
SJ2 Development Environment
There are two major components of the development environment: Compile a program for the ARM pr...
vTaskDelay
vTaskDelay() is a naive function, but it is important to understand how it really works. The fu...
Lab: I2C Slave
Overall Objective We will setup one SJ2 board as a Master board, and another as a Slave board, a...
I2C communication on the same board
An alternative to test the I2C Leader-member (master-slave) communication on the same board is to...
Random Topics
Useful topics to learn about: Avoid dynamic memory after RTOS starts Avoiding task deletions ...