Created
August 8, 2008 19:26
-
-
Save halfbyte/4616 to your computer and use it in GitHub Desktop.
This file contains 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
#define DATAOUT 11//MOSI | |
#define DATAIN 12//MISO | |
#define SPICLOCK 13//sck | |
#define SLAVESELECT 10//ss | |
#define REGISTERSET 9 | |
// opcodes | |
#define CLR 1 | |
#define HOME 2 | |
#define ON 0x0F | |
#define FUN_INIT 57 | |
#define BIAS_SET 28 | |
#define POWER_CTL 82 | |
#define FOLLOWER_CTL 105 | |
#define CONTRAST_SET 116 | |
#define ENTRY_MODE_SET 6 | |
byte clr; | |
char spi_transfer(volatile char data) | |
{ | |
SPDR = data; // Start the transmission | |
while (!(SPSR & (1<<SPIF))) // Wait for the end of the transmission | |
{ | |
}; | |
return SPDR; // return the received byte | |
} | |
void lcd_print(char *data) { | |
int i=0; | |
while(data[i]!=0) { | |
digitalWrite(REGISTERSET, HIGH); | |
spi_transfer(data[i]); | |
digitalWrite(REGISTERSET, LOW); | |
delay(1); | |
i++; | |
} | |
} | |
void setup(void) { | |
pinMode(DATAOUT, OUTPUT); | |
pinMode(DATAIN, INPUT); | |
pinMode(SPICLOCK,OUTPUT); | |
pinMode(SLAVESELECT,OUTPUT); | |
pinMode(REGISTERSET,OUTPUT); | |
digitalWrite(SLAVESELECT,HIGH); | |
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0); | |
clr=SPSR; | |
clr=SPDR; | |
delay(10); | |
digitalWrite(SLAVESELECT,LOW); | |
spi_transfer(FUN_INIT); //function set | |
delay(30); | |
spi_transfer(BIAS_SET); | |
delay(30); | |
spi_transfer(POWER_CTL); | |
delay(30); | |
spi_transfer(FOLLOWER_CTL); | |
delay(30); | |
spi_transfer(CONTRAST_SET); | |
delay(30); | |
spi_transfer(ON); //write enable | |
delay(30); | |
spi_transfer(CLR); //write enable | |
delay(30); | |
spi_transfer(ENTRY_MODE_SET); | |
delay(30); | |
lcd_print("I rawk like hell"); | |
} | |
void loop() { | |
delay(500); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment