پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی
با سلام.
غبارت progmem در PROGMEM unsigned char pic-name[] به چه معنی هست؟
با سلام.
غبارت progmem در PROGMEM unsigned char pic-name[] به چه معنی هست؟
//--- DATA --- #define KS108_DB_DDR DDRC // KS0108 DATA port #define KS108_DB_PRT PORTC #define KS108_DB_PIN PINC //--- CTRL --- #define KS108_RS_DDR DDRA // KS0108 RS (D/I) #define KS108_RS_PRT PORTA #define KS108_RS_BIT 2 #define KS108_RW_DDR DDRA // KS0108 R/W #define KS108_RW_PRT PORTA #define KS108_RW_BIT 3 #define KS108_EN_DDR DDRA // KS0108 EN #define KS108_EN_PRT PORTA #define KS108_EN_BIT 4 #define KS108_CS1_DDR DDRA // KS0108 CSEL1 #define KS108_CS1_PRT PORTA #define KS108_CS1_BIT 0 #define KS108_CS2_DDR DDRA // KS0108 CSEL2 #define KS108_CS2_PRT PORTA #define KS108_CS2_BIT 1
#include <app_config.h> #include <ks0108.h> #include <Graphic.h> #include <Font.h> #include <f9x14.h> #include <AF12x16.h> #include <Pinguino.h> #include <Ptest.h> #include <ks0108config.h> void test01 (void); void main(void) { KS108_Init(NON_INVERTED); while(1) { test01(); delay_ms(2000); }//while } //main void test01(void) { unsigned int i=0; KS108_CLSx(); KS108_FillRect(30, 10, 67, 43, BLACK); KS108_SetDot(27, 7, BLACK); KS108_SetDot(27, 56, BLACK); KS108_SetDot(100, 7, BLACK); KS108_SetDot(100, 56, BLACK); //----------------------- delay_ms(2000); KS108_InvertRect(40, 20, 47, 23); delay_ms(2000); KS108_SetInverted(INVERTED); delay_ms(2000); KS108_SetInverted(NON_INVERTED); delay_ms(2000); KS108_DrawBitmap(test, 10, 6, NORMAL); KS108_DrawBitmap(test, 45, 6, INVERS); KS108_DrawBitmap(test, 80, 6, TRANS); delay_ms(2000); KS108_SetInverted(INVERTED); delay_ms(2000); KS108_SetInverted(NON_INVERTED); //----------------------- delay_ms(2000); KS108_CLSx(); KS108_DrawBitmap(Pinguino, 32, 0, NORMAL); //----------------------- delay_ms(2000); KS108_CLSx(); for(i=0; i<DISPLAY_HEIGHT; i++) { KS108_DrawBitmap(test, 10, i, NORMAL); delay_ms(50); KS108_FillRect(10, i, 30, i, WHITE); } delay_ms(200); for(i=0; i<DISPLAY_WIDTH; i++) { KS108_DrawBitmap(test, i, 10, NORMAL); delay_ms(50); KS108_FillRect(i, 10, i, 30, WHITE); } //----------------------- delay_ms(200); KS108_CLSx(); KS108_DrawBitmap(test, 10, 10, NORMAL); KS108_DrawBitmap(test, 45, 10, INVERS); KS108_DrawBitmap(test, 80, 10, NORMAL); delay_ms(2000); KS108_InvertRect(79, 9, 31, 31); }
#include <app_config.h> #include <ks0108.h> #include <Graphic.h> #include <Font.h> #include <f9x14.h> #include <AF12x16.h> #include <Pinguino.h> #include <Ptest.h> #include <ks0108config.h> void test01 (void); void main(void) { KS108_Init(NON_INVERTED); while(1) { test01(); delay_ms(2000); }//while } //main void test01(void) { unsigned int i=0; KS108_CLSx(); KS108_FillRect(30, 10, 67, 43, BLACK); KS108_SetDot(27, 7, BLACK); KS108_SetDot(27, 56, BLACK); KS108_SetDot(100, 7, BLACK); KS108_SetDot(100, 56, BLACK); //----------------------- delay_ms(2000); KS108_InvertRect(40, 20, 47, 23); delay_ms(2000); KS108_SetInverted(INVERTED); delay_ms(2000); KS108_SetInverted(NON_INVERTED); delay_ms(2000); KS108_DrawBitmap(test, 10, 6, NORMAL); KS108_DrawBitmap(test, 45, 6, INVERS); KS108_DrawBitmap(test, 80, 6, TRANS); delay_ms(2000); KS108_SetInverted(INVERTED); delay_ms(2000); KS108_SetInverted(NON_INVERTED); //----------------------- delay_ms(2000); KS108_CLSx(); KS108_DrawBitmap(Pinguino, 32, 0, NORMAL); //----------------------- delay_ms(2000); KS108_CLSx(); for(i=0; i<DISPLAY_HEIGHT; i++) { KS108_DrawBitmap(test, 10, i, NORMAL); delay_ms(50); KS108_FillRect(10, i, 30, i, WHITE); } delay_ms(200); for(i=0; i<DISPLAY_WIDTH; i++) { KS108_DrawBitmap(test, i, 10, NORMAL); delay_ms(50); KS108_FillRect(i, 10, i, 30, WHITE); } //----------------------- delay_ms(200); KS108_CLSx(); KS108_DrawBitmap(test, 10, 10, NORMAL); KS108_DrawBitmap(test, 45, 10, INVERS); KS108_DrawBitmap(test, 80, 10, NORMAL); delay_ms(2000); KS108_InvertRect(79, 9, 31, 31); }
دیدگاه