Texas Instruments MCU And C++

February 28, 2024

During my second year of EE at BCIT, I took the course ELEX 3305 (Microcontroller Systems), where we learned to program a Texas Instruments TM4C123G microcontroller in C++. We also purchased a (TI) Education Boosterpack, which is an add-on board with various analog and digital inputs/outputs, including an analog joystick, environmental and motion sensors, RGB LED, microphone, buzzer, color LCD, and more. We programmed the microcontroller in C++ and controlled it by directly manipulating the registers. Later in the course, we also wrote assembly code to do the same. This method may be considered more challenging, but it’s essential for microcontrollers lacking a library of functions for programming.

TI TM4C123G Evaluation Board
TI TM4C123G Evaluation Board
TI Education Boosterpack
TI Education Boosterpack

Next term (still second year), I took the course ELEX 4618 (Object Oriented Program Design). The course builds on previous programming knowledge and covers advanced C++ programming concepts, including object-oriented techniques, standard library usage, thread handling, dynamic data structures, and timing analysis. It emphasizes practical applications such as machine vision with OpenCV.

The weekly labs were the best part of the course. Some labs involved using the above hardware as a controller for our program (like games). This time we programmed the microcontroller in Energia that natively supports these TI microcontrollers and comes with a library of functions to program them without the need of manipulating the registers.

In lab 4 we were required to make an Etch-A-Sketch program, in lab 5 we were required to create a simple PONG game, and in lab 6 we were required to create either Space Invaders or Asteroids. These games are not full clones, we only had a certain number of features we were required to implement and all labs had to be completed within one week. In lab 7 we were required to port our game from Windows to Linux and run it on a Raspberry Pi (with an analog joystick connected to an ADC connected to the GPIO pins).

Posted in UncategorizedTags:
Related Posts

In the BEng EE program at BCIT we have two 4-week summer terms. One of them is taken right after the first year and the second one can be taken after the completion of the second or third year. I recently completed that second…

If you have been following my posts, you would know I am an Electrical Engineering student at BCIT. In my last post, I talked about my course ELEX 4618 (Object Oriented Program Design), and some of the weekly labs I worked on. One of…

I learned Schematic and PCB design using Altium Designer at BCIT. My plan was to do some more practice over the Summer. To my surprise, a few weeks after the end of the course our accounts were disabled even though I thought we had…

1 Comment
Write a comment