First of all some explanation. The line numbers on the side are the same as the indices in the following enumeration:

First of all some explanation. The line numbers on the side are the same as the indices in the following enumeration:

−

# This first line of code is already quite interesting for someone who never used a microcontroller. If you read the [[LED Cube/Understanding The Electronics]] page, you know that the microcontroller contained the switches we talked about. The situation is actually much more complicated. The microcontroller is not only able to connect a pin to the positive supply voltage or nothing, it is also able to connect it to the negative pole. We will call the positive supply voltage ''Vcc'' and the negative ''GND'' (pronounced ''Ground'').

+

<ol>

+

<li>This first line of code is already quite interesting for someone who never used a microcontroller. If you read the [[LED Cube/Understanding The Electronics]] page, you know that the microcontroller contained the switches we talked about. The situation is actually much more complicated. The microcontroller is not only able to connect a pin to the positive supply voltage or nothing, it is also able to connect it to the negative pole. We will call the positive supply voltage ''Vcc'' and the negative ''GND'' (pronounced ''Ground'').

+

</li>

+

</ol>

Version vom 17. April 2012, 14:05 Uhr

This page introduces you to the software section of the LED Cube. It specifically shows you how you can write your own programs, for example if you do not want to use the pattern program or require additional functionality. This page assumes some basic knowledge about the C programming language and how to use a shell. It does not assume knowledge about the microcontroller architecture or the toolchain.

However, we are not taking care about how this works with Windows. If you want to use Windows anyway, you can figure it out by yourself (yes, it is possible) or get a decent operating system.

Requirements

First of all, you need an AVR Toolchain. You can skip installing avrdude if you do not have a programmer and want to update the program using the bootloader, which is probably what you want. This provides you with

avr-gcc: The C compiler for AVR microcontrollers

avr-libc: The C standard library for AVR microcontrollers

avr-binutils: Various tools for manipulating and working with outputs from avr-gcc

Also, you need the bootloader utility. To get this, you should follow the section Building the Bootloader Application from Building From Source. This time you can skip this step if you are using an external programmer. But this is probably not what you want. After following that step, you have an application called bootloadHID. This is used to update the firmware of your cube.

Getting Started

So, let's now create a first program. This will not do very much: It will simply light up the center LED of the cube - all the time. Create an empty folder, in this folder create a file led-cube.c and paste the following code into it:

First of all some explanation. The line numbers on the side are the same as the indices in the following enumeration:

This first line of code is already quite interesting for someone who never used a microcontroller. If you read the LED Cube/Understanding The Electronics page, you know that the microcontroller contained the switches we talked about. The situation is actually much more complicated. The microcontroller is not only able to connect a pin to the positive supply voltage or nothing, it is also able to connect it to the negative pole. We will call the positive supply voltage Vcc and the negative GND (pronounced Ground).