/*! * \brief Pre-set all CGRAM characters * * \param set Type of CGRAM stored in rom * */ void LCD_wr_cgram_all(void) { LCD_wr_cgram(0, &cgrom[0]); LCD_wr_cgram(1, &cgrom[8]); LCD_wr_cgram(2, &cgrom[16]); LCD_wr_cgram(3, &cgrom[24]); LCD_wr_cgram(4, &cgrom[32]); LCD_wr_cgram(5, &cgrom[40]); } else {
/*! * M A I N * */ int main(void) { uint16_t poc = 0; uint8_t i,j; uint8_t dir; uint8_t tmp; LCD_init(); /* Initialize display */ LCD_wr_cgram(0,&cgrom_p[0]); /* Program first char in CG-RAM */ LCD_sendcmd(LCD_EN1 | LCD_EN2 | 0xc); /* Disable cursors */ for (i = 1; i < 5; i++) /* Fill display with pattern */ for (j = 1; j < 41; j++) { LCD_cursor_yx(i,j); LCD_senddata(((i <3) ? LCD_EN1 : LCD_EN2)| 0); _delay_ms(100); } LCD_sendcmd(LCD_EN1 | LCD_EN2 | 0x1); /* Clear display */ i = 1; j = 1; dir = 0; do{ LCD_cursor_yx(i,j); /* Display figure */ LCD_senddata(((i <3) ? LCD_EN1 : LCD_EN2)| 0); for (tmp = 0; tmp < 20; tmp++) _delay_ms(10); /* Wait for while */ LCD_cursor_yx(i,j); LCD_senddata(((i <3) ? LCD_EN1 : LCD_EN2)| ' '); /* Clear figure */ switch(dir) { /* State machine - direction control */ case 0: j++; if (j == 40) dir = 1; /* Right */ break; case 1: i++; if (i == 4) dir = 2; /* Down */ break; case 2: j--; if (j == 1) dir = 3; /* Left */ break; case 3: i--; if (i == 1) dir =0; /* Up */ break; } } while(1); }
void LCD_wr_cgram_all(uint8_t set) { if (!set) { LCD_wr_cgram(0, &cgrom[0]); LCD_wr_cgram(1, &cgrom[8]); LCD_wr_cgram(2, &cgrom[16]); LCD_wr_cgram(3, &cgrom[24]); LCD_wr_cgram(4, &cgrom[32]); LCD_wr_cgram(5, &cgrom[40]); } else { LCD_wr_cgram(0, &cgrom2[0]); LCD_wr_cgram(1, &cgrom2[8]); LCD_wr_cgram(2, &cgrom2[16]); LCD_wr_cgram(3, &cgrom2[24]); LCD_wr_cgram(4, &cgrom2[32]); LCD_wr_cgram(5, &cgrom2[40]); LCD_wr_cgram(6, &cgrom2[48]); LCD_wr_cgram(7, &cgrom2[56]); } }