پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای 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);
}

دیدگاه