Simon Says learn how to program ARM chips

barebones-simon-says

This breadboard version of a Simon Says game is a great way to try your skills on a new microcontroller platform. The eight-pin chip seen in the center of the board is an LPC810 microcontroller which [Hartmut Wendt] is just getting started with. It’s a rare example of a low-pin count DIP package for an ARM device (Cortext M0). The breadboard friendly footprint makes it easy to work with, but you could pull off the same build with a dev board like one of the STM discovery offerings or the Stellaris Launchpad boards.

Why is this a good way to learn? It involves input, output, and generating waveforms which we’d assume means timers (we didn’t dig through the source code which is available form the page linked above). Each colored button has a matching LED which blinks out the pattern which you must replicate to keep the game going; you know how Simon Says works, right?. At the same time a different pitch is played by the speaker on the right.

Another good exercise would be to take [Hartmut’s] code and port it for a different chip, be it ARM or otherwise.

8 thoughts on “Simon Says learn how to program ARM chips

  1. It’d be great if this used the DMA for waveform generation. The DMA on these dip ARM chips is one of the more useful features the atmegas lack.

      1. That’s too bad, I just ordered one of the mini kits for a small project that would benefit from DMA. I assumed all their m0 parts had DMA controllers.

      1. Depends on how you’re making the sound. Assuming you’re using pwm (instead of a DAC), you could set up a pwm to read frequencies from a DMA controlled buffer to reduce CPU usage. IMO code that uses the DMA usually looks cleaner too.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s