Created
April 10, 2013 01:36
-
-
Save dimme/5351041 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* ATMEL ATMEGA16 Hand-powered v2 POV program made by Dimme.net */ | |
#include "avr/io.h" | |
#define SPACE 100 | |
#define SHORTLINE 100 | |
#define SHORTSHORTLINE 50 | |
#define MIDLINE 300 | |
#define RSPACE 400 | |
void write(char*); | |
void ch(char); | |
void wait(unsigned long int); | |
void led(unsigned long int, unsigned int); | |
void alloff(); | |
void init(); | |
int main(void){ | |
init(); | |
while(1){ | |
write("DIMME.NET "); | |
} | |
} | |
void write(char* w){ | |
unsigned int i = 0; | |
while (w[i] != 0){ | |
ch(w[i]); | |
i++; | |
} | |
} | |
void ch(char c){ | |
if (c == 'A') { | |
led(0b0001111111111111,SHORTSHORTLINE); | |
led(0b0011111111111111,SHORTSHORTLINE); | |
led(0b1110000111000000,MIDLINE); | |
led(0b0011111111111111,SHORTSHORTLINE); | |
led(0b0001111111111111,SHORTSHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == 'H') { | |
led(0b1111111111111111,SHORTLINE); | |
led(0b0000001111000000,MIDLINE); | |
led(0b1111111111111111,SHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == 'I') { | |
led(0b1110000000000111,SHORTLINE); | |
led(0b1111111111111111,SHORTLINE); | |
led(0b1110000000000111,SHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == 'D') { | |
led(0b1111111111111111,SHORTLINE); | |
led(0b1110000000000111,SHORTLINE); | |
led(0b1110000000000111,SHORTLINE); | |
led(0b0111100000011110,SHORTSHORTLINE); | |
led(0b0001110000111000,SHORTSHORTLINE); | |
led(0b0000111111110000,SHORTSHORTLINE); | |
led(0b0000001111000000,SHORTSHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == 'E') { | |
led(0b1111111111111111,SHORTLINE); | |
led(0b1110001111000111,MIDLINE); | |
led(0b1110000000000111,SHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == 'M') { | |
led(0b1111111111111111,SHORTLINE); | |
led(0b0001111000000000,SHORTSHORTLINE); | |
led(0b0000011110000000,SHORTSHORTLINE); | |
led(0b0000000111100000,SHORTLINE); | |
led(0b0000011110000000,SHORTSHORTLINE); | |
led(0b0001111000000000,SHORTSHORTLINE); | |
led(0b1111111111111111,SHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == '.') { | |
led(0b0000000000000111,SHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == 'N') { | |
led(0b1111111111111111,SHORTLINE); | |
led(0b0011110000000000,SHORTSHORTLINE); | |
led(0b0001111000000000,SHORTSHORTLINE); | |
led(0b0000011110000000,SHORTSHORTLINE); | |
led(0b0000001111000000,SHORTSHORTLINE); | |
led(0b0000000011110000,SHORTSHORTLINE); | |
led(0b0000000000111100,SHORTSHORTLINE); | |
led(0b1111111111111111,SHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == 'T') { | |
led(0b1110000000000000,SHORTLINE); | |
led(0b1110000000000000,SHORTLINE); | |
led(0b1111111111111111,SHORTLINE); | |
led(0b1110000000000000,SHORTLINE); | |
led(0b1110000000000000,SHORTLINE); | |
alloff(); | |
wait(SPACE); | |
} else if (c == ' ') { | |
wait(RSPACE); | |
} | |
} | |
void wait(unsigned long int j){ | |
unsigned long int i; | |
for(i = 0; i < j; i++); | |
} | |
void led(unsigned long int n, unsigned int w){ | |
PORTD = (unsigned short int) n; | |
PORTB = n >> 8; | |
wait(w); | |
} | |
void alloff(){ | |
PORTD = 0; | |
PORTB = 0; | |
} | |
void init(){ | |
DDRD = (1<<DDD7)|(1<<DDD6)|(1<<DDD5)|(1<<DDD4)|(1<<DDD3)|(1<<DDD2)|(1<<DDD1)|(1<<DDD0); | |
DDRB = (1<<DDB7)|(1<<DDB6)|(1<<DDB5)|(1<<DDB4)|(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); | |
alloff(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment