پاسخ : آموزش winavr و avrlib
در سورس lcd.c تابعی بنام lcdInit هست که برای استارت اولیه lcd بایستی صدا بشه. در این تابع شکل 8 کاراکتر قابل تعریف مجددا تعریف میشه:
void lcdInit()
{
// initialize hardware
lcdInitHW();
// LCD function set
lcdControlWrite(LCD_FUNCTION_DEFAULT);
// clear LCD
lcdControlWrite(1<<LCD_CLR);
delay(60000); // wait 60ms
// set entry mode
lcdControlWrite(1<<LCD_ENTRY_MODE | 1<<LCD_ENTRY_INC);
// set display to on
//lcdControlWrite(1<<LCD_ON_CTRL | 1<<LCD_ON_DISPLAY | 1<<LCD_ON_BLINK);
lcdControlWrite(1<<LCD_ON_CTRL | 1<<LCD_ON_DISPLAY );
// move cursor to home
lcdControlWrite(1<<LCD_HOME);
// set data address to 0
lcdControlWrite(1<<LCD_DDRAM | 0x00);
// load the first 8 custom characters
lcdLoadCustomChar((u08*)LcdCustomChar,0,0);
lcdLoadCustomChar((u08*)LcdCustomChar,1,1);
lcdLoadCustomChar((u08*)LcdCustomChar,2,2);
lcdLoadCustomChar((u08*)LcdCustomChar,3,3);
lcdLoadCustomChar((u08*)LcdCustomChar,4,4);
lcdLoadCustomChar((u08*)LcdCustomChar,5,5);
lcdLoadCustomChar((u08*)LcdCustomChar,6,6);
lcdLoadCustomChar((u08*)LcdCustomChar,7,7);
}
این اشکال طبق لیست زیر هستن:
........ ........ ........ ........ ........ ........ ...___@@
...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...__@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ..._@@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ...@@@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ..._@@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ...__@@@
...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...___@@
البته کاراکتر ها اینجا بد نشون داده میشه. اینا رو توی یک dos box نگاه کنین. ضمنا نقطه ها جزء کاراکتر نیستن و _ ها خالی و @ ها نقاط روشن هستن.
در سورس lcd.c تابعی بنام lcdInit هست که برای استارت اولیه lcd بایستی صدا بشه. در این تابع شکل 8 کاراکتر قابل تعریف مجددا تعریف میشه:
void lcdInit()
{
// initialize hardware
lcdInitHW();
// LCD function set
lcdControlWrite(LCD_FUNCTION_DEFAULT);
// clear LCD
lcdControlWrite(1<<LCD_CLR);
delay(60000); // wait 60ms
// set entry mode
lcdControlWrite(1<<LCD_ENTRY_MODE | 1<<LCD_ENTRY_INC);
// set display to on
//lcdControlWrite(1<<LCD_ON_CTRL | 1<<LCD_ON_DISPLAY | 1<<LCD_ON_BLINK);
lcdControlWrite(1<<LCD_ON_CTRL | 1<<LCD_ON_DISPLAY );
// move cursor to home
lcdControlWrite(1<<LCD_HOME);
// set data address to 0
lcdControlWrite(1<<LCD_DDRAM | 0x00);
// load the first 8 custom characters
lcdLoadCustomChar((u08*)LcdCustomChar,0,0);
lcdLoadCustomChar((u08*)LcdCustomChar,1,1);
lcdLoadCustomChar((u08*)LcdCustomChar,2,2);
lcdLoadCustomChar((u08*)LcdCustomChar,3,3);
lcdLoadCustomChar((u08*)LcdCustomChar,4,4);
lcdLoadCustomChar((u08*)LcdCustomChar,5,5);
lcdLoadCustomChar((u08*)LcdCustomChar,6,6);
lcdLoadCustomChar((u08*)LcdCustomChar,7,7);
}
این اشکال طبق لیست زیر هستن:
........ ........ ........ ........ ........ ........ ...___@@
...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...__@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ..._@@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ...@@@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ..._@@@@
..._____ ...@____ ...@@___ ...@@@__ ...@@@@_ ...@@@@@ ...__@@@
...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...@@@@@ ...___@@
البته کاراکتر ها اینجا بد نشون داده میشه. اینا رو توی یک dos box نگاه کنین. ضمنا نقطه ها جزء کاراکتر نیستن و _ ها خالی و @ ها نقاط روشن هستن.
دیدگاه