//Emil Fihlman #include #define F_CPU 16000000UL #include #include #include #include "font.c" u8 i, j, k=0, rxb[5]={0}, c, b=0x00; u8 d3[8]= { 0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000001 }; u8 d2[8]= { 0b00000001, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b10000000 }; u8 d1[8]= { 0b00000000, 0b00000000, 0b00000000, 0b10000000, 0b10000000, 0b00000000, 0b00000000, 0b00000000 }; u8 d0[8]= { 0b00000000, 0b00000000, 0b00000000, 0b00000001, 0b00000001, 0b00000000, 0b00000000, 0b00000000 }; u8 *d[4]= { d0, d1, d2, d3 }; void uart_init(void) { UCSR0A=0b00000000; UCSR0B=0b00011000; UCSR0C=0b00000110; UBRR0H=0b00000000; UBRR0L=103; } u8 uart_getc(void) { loop_until_bit_is_set(UCSR0A, RXC0); return UDR0; } void uart_putc(u8 c) { loop_until_bit_is_set(UCSR0A, UDRE0); UDR0=c; } void uart_puts(u8 *s) { while(*s) { uart_putc(*s++); } } u8 spit(u8 c) { SPDR=c; while(!(SPSR&0b10000000)){}; return(SPDR); } void spitc(u8 addr, u8 comm, u8 chip) { u8 i; PORTB&=0b11111011; for(i=0; i<(3-chip); i++) { spit(0x00); spit(0x00); } spit(addr); spit(comm); for(i=0; i