NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3998 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 18 از 18

موضوع: فونت نمایش در LCD n96

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نوشته ها
    33
    تشکر
    5
    تشکر شده 7 بار در 3 پست

    Icon17 فونت نمایش در LCD n96

    سلام دوستان
    چطور میشه فونت نمایش حروف و عدد رو در LCDn96 بزرگتر کرد؟
    برای خودش خیلی کوچیکه...
    ممنون

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    باید از اول یه فونت تعریف کنید و در یه آرایه ذخیره اش کنید.
    این فونت پیشفرض سایزش فیکس هست.
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  4. کاربران : 3 تشکر کرده اند از شما Aghaeifar برای ارسال این پست سودمند:


  5. #3
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    آقای آقائی فر درست می فرمایند.
    ولی اگر حال و حوصله طراحی فونت رو نداری و میخوای فونتت مثلا چهار برابر بزرگتر بشه راه دیگه ای هم که هست اینه که صفحه نمایشت رو به یک چهارم کاهش بدی به این صورت که به جای رسم یه نقطه تو صفحه 4 تا نقطه بذاری - یعنی نقطه درشت تر و نتیجه بزرگ شدن فونت خواهد بود ! یکی از تکنیک های بولد کردن فونت همینه !

  6. کاربران : 3 تشکر کرده اند از شما agape برای ارسال این پست سودمند:


  7. #4
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نوشته ها
    33
    تشکر
    5
    تشکر شده 7 بار در 3 پست

    پیش فرض

    با عرض معذرت من که نفهمیدم چه کار کنم !؟
    مثلا میخوایم بنویسیم HELLO - مینویسیم:
    tftlcd_putsf("HELLO",RED,WHITE,0
    خوب دیگه نقطه بزرگ کردنش کجاست!!!!؟؟؟

  8. #5
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2010
    نوشته ها
    33
    تشکر
    5
    تشکر شده 7 بار در 3 پست

    پیش فرض

    الو؟؟؟؟؟؟؟؟؟؟

  9. #6
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    دوست من انگار از ساز و کار نحوه نوشتن فونت آگاهی ندارد ؟!
    داخل تابع tftlcd_putsf احتمالا میآد و یه تایع که حروف رو قرار میده صدا میزنه - تو اون تابع که حروف رو قرار میده میآد و تابعی که نقطه میذاره رو صدا میزنه - شما باید اونجا رو دست کاری کنی

  10. #7
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    منم دارم روی همین قضیه کار میکنم
    یه فونت 16*24 پیدا کردم ببینم چی میشه
    *** اللّهم عجّل لولیک الفرج ***

  11. #8
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    آقا من این فونت رو تونستم نمایش بدم ولی تنها یه مشکلی هست :
    از هر کاراکتر فقط نصفه چپش رو نمایش میده
    مثلا حرف 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]
    *** اللّهم عجّل لولیک الفرج ***

  12. تشکرها از این نوشته :


  13. #9
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    حسین لطفا فونت رو هم بذار منم تست کنم. ظاهر این کد که درسته.
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  14. #10
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    چشم
    بفرمائید
    فايل هاي پيوست شده فايل هاي پيوست شده
    *** اللّهم عجّل لولیک الفرج ***

  15. کاربران : 2 تشکر کرده اند از شما Doloop برای ارسال این پست سودمند:


  16. #11
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    شرط if داخل حلقه ی دوم رو این کن

    [PHP]if (char_data&(0x8000 >>(16- vcount)))[/PHP]
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  17. تشکرها از این نوشته :


  18. #12
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    مهندس برای شما جواب داد...؟؟؟!
    برا من هنوزم همونطوریه!!!
    نصفه نشون میده
    اینم عکس :

    الان روی السیدی اینو نوشته : Cortex-m4
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 20120822051.jpg
مشاهده: 42
حجم: 68.3 کیلو بایت  
    *** اللّهم عجّل لولیک الفرج ***

  19. #13
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    حسین این شرط رو به چیزی که نوشتم تغییر دادی؟

    برای من همه حروف رو با تغییر این شرط صحیح و کامل نمایش میده

    تغییر نام کاربری مبارک
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  20. تشکرها از این نوشته :


  21. #14
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    ممنون
    برای جلوگیری از اشتباه دقیقا همین شرط رو کپی کردم و جایگزین اون کردم
    ولی باز تغیری نکرد
    *** اللّهم عجّل لولیک الفرج ***

  22. #15
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    علی آقا شما فقط همین قسمت رو تغیر دادی !!!
    من اینقدر این هدر رو دستکاری کردم تا به اینجا رسیدم
    حالا شما جواب گرفتی ولی من...
    *** اللّهم عجّل لولیک الفرج ***

  23. #16
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    راست بذار من کل تابع خودم رو بدم بهت دیگه

    [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]
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  24. کاربران : 4 تشکر کرده اند از شما Aghaeifar برای ارسال این پست سودمند:


  25. #17
    کاربر علاقه مند
    تاریخ عضویت
    Sep 2011
    نوشته ها
    24
    تشکر
    10
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط Aghaeifar نمایش پست ها
    راست بذار من کل تابع خودم رو بدم بهت دیگه

    [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]
    با این کد هنوز فونت های من نصفه هست
    بزرگ شده سایزش اما نصفه سمت راست نداره
    فونت رو کپی کردم کد شما رو هم وارد کردم

  26. #18
    کاربر فعال
    تاریخ عضویت
    May 2013
    نوشته ها
    193
    تشکر
    120
    تشکر شده 21 بار در 17 پست

    پیش فرض

    سلام.من توی هرقسمت این سوال رو پرسیدم ولی کسی جواب نمیده.مدیریت محترم بخش LPC لطفا جواب من رو هم بدید.من یه برنامه اماده واسه lpc1768بود توی سایت ecaمن هم برداشتم و ران کردم.الان میتونم یه چیزایی رو ال سی دی بنویسم اما مختصات x,yرو نمیدونم دقیقا رو چه اصولیه.با توابع تاچش هم هنوز نتونستم کار کنم.اگه برنامه رو اینجا قرار بدم کمکم میکنید؟

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •