void LT_writereg(unsigned char reg,unsigned char H,unsigned char L) { SS_L(); reg=SPI_write_byte(reg); RegH = SPI_write_byte(H); RegL = SPI_write_byte(L); SS_H(); }
void set_LEDs_RGB(uint8_t b) { b |= 0x80; for (uint8_t i = 0; i < 3 * PIXEL_COUNT; i++) SPI_write_byte(i & 3 ? 0x80 : b); SPI_write_byte(0x00); delay(); }
/*c SPI_read_byte(c dat) { c k; SS = 0; SPI_write_byte(dat); k = SPI_write_byte(0); SS = 1; return(k); }*/ void LT_readreg(unsigned char reg) { SS_L(); reg=SPI_write_byte(0x80+reg); RegH=SPI_write_byte(0xff); RegL=SPI_write_byte(0xff); SS_H(); }
void write_SPI_SR(uchar sReg) { CS=0; delay(); SPI_write_byte(WREN); CS=1; delay(); CS=0; delay(); SPI_write_byte(WRSR); SPI_write_byte(sReg); CS=1; delay(); }
int main() { init_timer(); init_serial(); init_SPI(); init_ATX_power(); sei(); enable_ATX_power(); delay_milliseconds(100); next_update_time = millisecond_time() + FRAME_MS; SPI_write_byte(0x00); while (true) { const uint8_t b1 = MAX_BRIGHTNESS / 4; const uint8_t b2 = MAX_BRIGHTNESS * 3 / 4; const uint8_t b3 = MAX_BRIGHTNESS; ramp(0, b1, set_LEDs_white); ramp(b1, 0, set_LEDs_white); ramp(0, b2, set_LEDs_CMY); ramp(b2, 0, set_LEDs_CMY); ramp(0, b3, set_LEDs_RGB); ramp(b3, 0, set_LEDs_RGB); } }
uchar read_SPI(uchar addr) { uchar dat; SCK=0; delay(); CS=0; delay(); SPI_write_byte(READ); SPI_write_byte(addr); dat=SPI_read_byte(); CS=1; delay(); SCK=0; delay(); return dat; }
void write_SPI(uchar dat,uchar addr) { SCK=0; CS=0; delay(); SPI_write_byte(WREN); CS=1; delay(); CS=0; delay(); SPI_write_byte(WRITE); SPI_write_byte(addr); SPI_write_byte(dat); CS=1; SCK=0; }
uchar read_SPI_SR(void) { uchar sReg=0; CS=0; delay(); SPI_write_byte(RDSR); sReg=SPI_read_byte(); CS=1; delay(); return sReg; }
void SPI_Write_text(uint8_t * string){ uint8_t * char_ptr; uint8_t i; //volatile uint8_t testbyte = 0; LCD_Select(); LCD_Sel_Data(); while(*string != 0){ char_ptr = fontz_table[(*string - 32) & 0x7F]; for(i = 1; i <= char_ptr[0]; i++){ SPI_write_byte(char_ptr[i]); } SPI_write_byte(0x00); string++; } LCD_DeSelect(); }
void end_LEDs_refresh() { SPI_write_byte(0x00); }
void set_pixel_color(uint8_t red, uint8_t green, uint8_t blue) { SPI_write_byte(green | 0x80); SPI_write_byte(red | 0x80); SPI_write_byte(blue | 0x80); }
void begin_LEDs_refresh() { SPI_write_byte(0x00); }