Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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);
- }
Add Comment
Please, Sign In to add comment