3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

64 pixel RGB LED Display - Another Arduino Clone

Step 4C++ Source code

C++ Source code
In C/C++ usually one has to prototype functions before coding them.

#include <stdio.h>

int main(void);
void do_something(void);

int main(void) {

do_something();

}

void do_something(void) {

/* comment */

}

The Arduino IDE does not require this step, as functions prototypes are generated automatically. Therefore function prototypes won't show up in the code shown here.

Image (1): setup() function

Image (2): spi_transfer() function using hardware SPI of the ATmega168 chip (runs faster)

Image (3): framebuffer code using a timer1 overflow interrupt.

Pieces of code that have a slightly cryptic look for beginners e.g. while(!(SPSR & (1<<SPIF))) {} use the MCU's registers directly. This example in words: "while the the SPIF-bit in register SPSR is not set do nothing".

I just want to emphasize that for standard projects it is really not necessary to deal with these things so closely related to hardware. Beginners should not be frightened by this.
« Previous StepDownload PDFView All StepsNext Step »
4 comments
Apr 26, 2011. 8:16 AMacotton1 says:
Hi madworm,

I have one week to make an RGB LED matrix for school. How did you wire your matrix up before you transferred it all to PCB? Due to time and money constraints, I can't have a PCB manufactured. Do you have photos, schematics, or diagrams?
Mar 30, 2011. 11:00 PMwmtt says:
Dear madworm.

Good news, I have success in having a working RGB matrix after following your codes and instruction.

May I know how do i modify the code if I want to run it on a stand alone ATMEGA168/328 but NOT from a Arduino?

Thank you again!

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
26
Followers
2
Author:madworm
Slightly Dorky High Nerd