From 12169019447f2d583a67010db8efb6f06820d76e Mon Sep 17 00:00:00 2001 From: Alexander Kauerz Date: Thu, 9 Feb 2012 23:03:40 +0100 Subject: lolshield --- LoLShield/Examples/charli_heart/charli_heart.pde | 82 ++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 LoLShield/Examples/charli_heart/charli_heart.pde (limited to 'LoLShield/Examples/charli_heart/charli_heart.pde') diff --git a/LoLShield/Examples/charli_heart/charli_heart.pde b/LoLShield/Examples/charli_heart/charli_heart.pde new file mode 100644 index 0000000..0847dfd --- /dev/null +++ b/LoLShield/Examples/charli_heart/charli_heart.pde @@ -0,0 +1,82 @@ +/* + Example for Charliplexing library + + Alex Wenger http://arduinobuch.wordpress.com/ + + History: + 30/Dez/09 - V0.0 wrote the first version at 26C3/Berlin + +*/ +#include "Charliplexing.h" + +struct point { + uint8_t xp; // Point Position in X direction (multplied by 16) + uint8_t x_speed; // Speed + uint8_t flag; +} points[9]; + +void setup() // run once, when the sketch starts +{ + LedSign::Init(); + + for(uint8_t i = 0; i < 9; i++) + { + points[i].xp = 0; + points[i].x_speed = random(1, 16); + points[i].flag = 1; + } +} + +uint8_t heart_p[] = { + 4,5, + 3,4, + 2,4, + 5,4, + 6,4, + 7,5, + 1,5, + 7,6, + 1,6, + 6,7, + 2,7, + 5,8, + 3,8, + 4,9, +}; + +void heart() +{ + for(uint8_t y = 0; y < 9; y++) + for(uint8_t x = 3; x < 11; x++) + { + LedSign::Set(x,y,0); + } + for(uint8_t i = 0; i < 14; i++) + { + LedSign::Set(heart_p[i*2+1],heart_p[i*2],1); + } +} + +uint8_t heart_flag; + +void loop() // run over and over again +{ + for(uint8_t i = 0; i < 9; i++) + { + points[i].xp += points[i].x_speed; + if (points[i].xp >= 14*16) + { + points[i].x_speed = random(1, 16); + points[i].xp = 0; + points[i].flag ^= 1; + } + LedSign::Set(points[i].xp/16,i,points[i].flag); + } + + heart_flag++; + if (heart_flag < 20) { + heart(); + } + + delay(40); +} -- cgit v1.2.3