Skip to content

Instantly share code, notes, and snippets.

@Xplorer001
Created January 27, 2017 04:38
Show Gist options
  • Save Xplorer001/c52d5e6ba482bab19c7195b77160e238 to your computer and use it in GitHub Desktop.
Save Xplorer001/c52d5e6ba482bab19c7195b77160e238 to your computer and use it in GitHub Desktop.
#include<delay.h>
int pin = 2;
int numLED = 17;
int cnt =0;
int ledCount = 3;
int rCircle =0;
uint8_t pixels[48];
uint8_t bite = 0xf0;
long startMillis, nowMillis;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(pin, OUTPUT);
for(cnt=0;cnt<16;cnt++){
setColor(cnt, 0xff,0x00,0x00);
}
show();
delay(1000);
for(cnt=0;cnt<16;cnt++){
setColor(cnt, 0x00,0xff,0x00);
}
show();
delay(1000);
for(cnt=0;cnt<16;cnt++){
setColor(cnt, 0x00,0x00,0xff);
}
show();
delay(100);
startMillis = millis();
}
void loop() {
// put your main code here, to run repeatedly:
if((millis()-startMillis)<5000){
for(rCircle=0;rCircle<16; rCircle++){
setColor((rCircle%16),0x00,0xff,0x00);
setColor((rCircle+1)%16,0x00,0xff,0x00);
setColor((rCircle+2)%16,0x00,0xff,0x00);
show();
delay(30);
for(cnt=0;cnt<16;cnt++){
setColor(cnt, 0x00,0x00,0x00);
}
}
}
else if((millis()-startMillis)<10000){
for(rCircle=0;rCircle<16; rCircle++){
setColor((rCircle%16),0x00,0x00,0xff);
setColor((rCircle+1)%16,0x00,0x00,0xff);
setColor((rCircle+2)%16,0x00,0x00,0xff);
show();
delay(30);
for(cnt=0;cnt<16;cnt++){
setColor(cnt, 0xff,0xff,0xff);
}
}
}
else if((millis()-startMillis)<15000){
for(rCircle=0;rCircle<16; rCircle++){
setColor((rCircle%16),0x99,0x00,0x99);
setColor((rCircle+1)%16,0x99,0x00,0x99);
setColor((rCircle+2)%16,0x99,0x00,0x99);
show();
delay(30);
for(cnt=0;cnt<16;cnt++){
setColor(cnt, 0x00,0xff,0x00);
}
}
}
else{
for(rCircle=0;rCircle<16; rCircle++){
setColor((rCircle%16),0x99,0x00,0x99);
setColor((rCircle+1)%16,0x99,0x00,0x99);
setColor((rCircle+2)%16,0x99,0x00,0x99);
show();
delay(30);
for(cnt=0;cnt<16;cnt++){
setColor(cnt, 0x00,0x00,0x00);
}
}
}
}
void sendOne(){
LPC_GPIO0->FIOPIN = 0xffffffff;
//digitalWrite(pin,HIGH);
asm("nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;");
LPC_GPIO0->FIOPIN = 0x00;
//digitalWrite(pin,LOW);
asm("nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;");
}
void sendZero(){
LPC_GPIO0->FIOPIN = 0xffffffff;
//digitalWrite(pin,LOW);
asm("nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;");
LPC_GPIO0->FIOPIN = 0x00;
//digitalWrite(pin,HIGH);
asm("nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;nop;nop;nop;nop;"
"nop;nop;nop;nop;");
}
void setColor(int led, uint8_t r, uint8_t g, uint8_t b){
led= led * 3;
pixels[led] = r;
pixels[led+1]= g;
pixels[led+2] = b;
}
void show(){
// pixelReset();
int num = 0, bitCount=0;
for(cnt=0; cnt<16; cnt++){
for(num=0; num<3; num++){
for(bitCount=0;bitCount<8;bitCount++)
{
if((pixels[(cnt*3)+num]>>bitCount)&0x01){
//Serial.print(1);
sendOne();
}
else{
sendZero();
//Serial.print(0);
}
}
}
}
}
void clearPixels(){
int i;
for(i=0; i<16; i++){
setColor(i,0x00,0x00,0x00);
}
show();
}
void pixelReset(){
digitalWrite(2,LOW);
delay_us(100);
//digitalWrite(2,HIGH);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment