#include #include #define F_CPU 16000000UL // 16 MHz #include volatile uint8_t count; int running; int ready; void main() { TCCR0|=(1< 0 PORTA ^= set; } if(set == 0 && state){ // 0 -> 1 set = 1 << pin; PORTA ^= set; } } else if(port == 'B'){ set &= PORTB; if(set && !state){ // 1 -> 0 PORTB ^= set; } if(set == 0 && state){ // 0 -> 1 set = 1 << pin; PORTB ^= set; } } else if(port == 'C'){ set &= PORTC; if(set && !state){ // 1 -> 0 PORTC ^= set; } if(set == 0 && state){ // 0 -> 1 set = 1 << pin; PORTC ^= set; } } else if(port == 'D'){ set &= PORTD; if(set && !state){ // 1 -> 0 PORTD ^= set; } if(set == 0 && state){ // 0 -> 1 set = 1 << pin; PORTD ^= set; } } } //Anropas när displayen skall ta emot ett kommando void display_cmd(char val) { PORTD=val; _delay_ms(3); set_pin('C', PC1, 0); //RW -> 0 set_pin('C', PC0, 0); //RS -> 0 _delay_ms(3); set_pin('C', PC6, 1); //E -> 1 _delay_ms(3); set_pin('C', PC6, 0); //E -> 0 } //Anropas när displayen skall skriva ut ett tecken void display_writeCh(char val) { PORTD=val; set_pin('C', PC1, 0); //RW -> 0 set_pin('C', PC0, 1); //RS -> 1 _delay_ms(3); set_pin('C', PC6, 1); //E -> 1 _delay_ms(3); set_pin('C', PC6, 0); //E -> 0 } void display_clear() { display_cmd(0x01); //Skickar in kommandot som rensar displayen display_cmd(0x38); //Functions set } void display_init() { display_clear(); display_cmd(0x0F); //Skickar in kommandot som sätter på displayen display_cmd(0x06); //Entry mode set }