سلام دوستان
چطور میشه فونت نمایش حروف و عدد رو در LCDn96 بزرگتر کرد؟
برای خودش خیلی کوچیکه...
ممنون
سلام دوستان
چطور میشه فونت نمایش حروف و عدد رو در LCDn96 بزرگتر کرد؟
برای خودش خیلی کوچیکه...
ممنون
باید از اول یه فونت تعریف کنید و در یه آرایه ذخیره اش کنید.
این فونت پیشفرض سایزش فیکس هست.
ما در انتظار رویت خورشیدیم ...
اللهم عجل لولیک الفرج
آقای آقائی فر درست می فرمایند.
ولی اگر حال و حوصله طراحی فونت رو نداری و میخوای فونتت مثلا چهار برابر بزرگتر بشه راه دیگه ای هم که هست اینه که صفحه نمایشت رو به یک چهارم کاهش بدی به این صورت که به جای رسم یه نقطه تو صفحه 4 تا نقطه بذاری - یعنی نقطه درشت تر و نتیجه بزرگ شدن فونت خواهد بود ! یکی از تکنیک های بولد کردن فونت همینه !
با عرض معذرت من که نفهمیدم چه کار کنم !؟
مثلا میخوایم بنویسیم HELLO - مینویسیم:
tftlcd_putsf("HELLO",RED,WHITE,0
خوب دیگه نقطه بزرگ کردنش کجاست!!!!؟؟؟
الو؟؟؟؟؟؟؟؟؟؟
دوست من انگار از ساز و کار نحوه نوشتن فونت آگاهی ندارد ؟!
داخل تابع tftlcd_putsf احتمالا میآد و یه تایع که حروف رو قرار میده صدا میزنه - تو اون تابع که حروف رو قرار میده میآد و تابعی که نقطه میذاره رو صدا میزنه - شما باید اونجا رو دست کاری کنی
منم دارم روی همین قضیه کار میکنم
یه فونت 16*24 پیدا کردم ببینم چی میشه
*** اللّهم عجّل لولیک الفرج ***
آقا من این فونت رو تونستم نمایش بدم ولی تنها یه مشکلی هست :
از هر کاراکتر فقط نصفه چپش رو نمایش میده
مثلا حرف M رو نصفه سمت چپ نمایش داده میشه
خیلی باهاش سروکله زدم ولی نتونستم این مشکل رو درست کنم
دوستان یاری برسونن
[PHP]
void tftlcd_putChr(char character, uint16_t frgColor, uint16_t bkgColor)
{
int8_t vcount, hcount;
char char_data;
tftlcd_setArea(x_text * 16, y_text * 24, (x_text * 16) + 15, (y_text * 24) + 23);
tftlcd_writeIndex(0x0022);
for (hcount = 0; hcount < 24; hcount++)
{
char_data = Font16x24[character - 32][hcount];
for (vcount = 0; vcount < 16; vcount++)
{
if ((char_data&(1 << vcount)) >> vcount)
tftlcd_writeData(frgColor);
else
tftlcd_writeData(bkgColor);
}
}
#ifdef PORTRAIT
if (++x_text > 29)
{
x_text = 0;
if (++y_text > 19)
y_text = 0;
}
#endif
#ifdef LANDSCAPE
if (++x_text > 39)
{
x_text = 0;
if (++y_text > 14)
y_text = 0;
}
#endif
[/PHP]
*** اللّهم عجّل لولیک الفرج ***
حسین لطفا فونت رو هم بذار منم تست کنم. ظاهر این کد که درسته.
ما در انتظار رویت خورشیدیم ...
اللهم عجل لولیک الفرج
چشم
بفرمائید
*** اللّهم عجّل لولیک الفرج ***
شرط if داخل حلقه ی دوم رو این کن
[PHP]if (char_data&(0x8000 >>(16- vcount)))[/PHP]
ما در انتظار رویت خورشیدیم ...
اللهم عجل لولیک الفرج
مهندس برای شما جواب داد...؟؟؟!
برا من هنوزم همونطوریه!!!
نصفه نشون میده
اینم عکس :
الان روی السیدی اینو نوشته : Cortex-m4
*** اللّهم عجّل لولیک الفرج ***
حسین این شرط رو به چیزی که نوشتم تغییر دادی؟
برای من همه حروف رو با تغییر این شرط صحیح و کامل نمایش میده
تغییر نام کاربری مبارک
ما در انتظار رویت خورشیدیم ...
اللهم عجل لولیک الفرج
ممنون
برای جلوگیری از اشتباه دقیقا همین شرط رو کپی کردم و جایگزین اون کردم
ولی باز تغیری نکرد
*** اللّهم عجّل لولیک الفرج ***
علی آقا شما فقط همین قسمت رو تغیر دادی !!!
من اینقدر این هدر رو دستکاری کردم تا به اینجا رسیدم
حالا شما جواب گرفتی ولی من...
*** اللّهم عجّل لولیک الفرج ***
راست بذار من کل تابع خودم رو بدم بهت دیگه
[PHP]void tftlcd_putchar(char character,int forground_color,int background_color,int transparent_mode)
{
int width_counter,length_counter;
int character_segment_data;
for(length_counter=0;length_counter<24;length_coun ter++)
{
character_segment_data=Font16x24[character-0x20][length_counter];
for(width_counter=0;width_counter<16;width_counter ++)
{
if(character_segment_data & (0x8000>>(16-width_counter)))
tftlcd_write_pixel((x_text*8)+width_counter,(y_tex t*16)+length_counter,forground_color);
else
{
if(!transparent_mode)
tftlcd_write_pixel((x_text*8)+width_counter,(y_tex t*16)+length_counter,background_color);
else
tftlcd_write_pixel((x_text*8)+width_counter,(y_tex t*16)+length_counter,tftlcd_read_pixel((x_text*8)+ width_counter,(y_text*16)+length_counter));
};
};
};
if(++x_text>40)
{
x_text=0;
if(++y_text>15) y_text=0;
};
} [/PHP]
ما در انتظار رویت خورشیدیم ...
اللهم عجل لولیک الفرج
سلام.من توی هرقسمت این سوال رو پرسیدم ولی کسی جواب نمیده.مدیریت محترم بخش LPC لطفا جواب من رو هم بدید.من یه برنامه اماده واسه lpc1768بود توی سایت ecaمن هم برداشتم و ران کردم.الان میتونم یه چیزایی رو ال سی دی بنویسم اما مختصات x,yرو نمیدونم دقیقا رو چه اصولیه.با توابع تاچش هم هنوز نتونستم کار کنم.اگه برنامه رو اینجا قرار بدم کمکم میکنید؟