PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : درایو GLCD 240x128 با at91sam7x256



Moshtaf
19-07-2011, 04:19
سلام
دوستان کسی قبلاً یک GLCD 240x128 رو با at91sam7x256 درایو کرده ؟
اسم ال سی دی : TS240128D ، که فکر میکنم درایورش هم T6963c باشه
اگر کسی هدرفایل یا مثال یا تجربه ای داره ممنون میشم در اختیار من هم بگذاره
کامپایلری هم که باهاش کار میکنم Keil هست
البته من بیشتر همون دنبال هدرفایلش هستم
ممنونم

Moshtaf
27-07-2011, 15:26
خب ظاهراً کسی همچین کدی نداشت
من توی اینترنت هم گشتم کسی کد آماده ای که با این مشخصات کار کنه تا به حال آپلود نکرده بود ، بالاخره مجبور شدم خودم از روی دیتاشیت و کدهای دیگه ای که بود یه هدرفایل برای این مشخصات بنویسم
اون ها رو آپلود کردم تا اگر کسی نیاز داشت ازشون استفاده کنه
سیستمی که من این کدهارو براش نوشتم و تست کردم اینا بوده :
یک LCD TS240128D با سایز 240x128 که البته از اسمش هم معلوم بود !!
البته مدل ال سی دی اصلاً مهم نیست ، مهم درایور اونه که T6963C هست ، هر ال سی دیه دیگه ای با این درایور و حتی با رزولیشین دیگه هم با این کدها قابل راه اندازی هست ( باید رزولوشن رو توی فایل t6963c.h تغییر بدین ، مثلاً 240 در 64 یا ... )
کامپایلری هم که من استفاده کردم Keil بود که البته زبانش C هست و قاعدتاً نباید با بقیه کامپایلرها مشکلی داشته باشه
میکرویی هم که این کدها رو براش نوشتم AT91SAM7X256 هست اما فکر میکنم کدها برای تمام AT91SAM7 ها صادقه و فقط باید اسم library ها رو که خط اول کدها اومده عوض کنید
کدها بر اساس پایه ی میکرو نوشته شده ، یعنی اگر حتی مثالاً با AVR هم خواستید کار کنید میتونید کدهای مربوط به ست و ریست کردن و امثال این رو متناسب با میکروی خودتون عوض کنید و از کدها استفاده کنید
این هدرفایل توابع زیر رو داره :
تابعی برای نوشتن متن
تابعی برای لود کردن تصویر (باید کد هگز تصاویرتون رو به فایل مخصوصی که همراه کدها هست اضافه کنید ، یک تصویر هم به عنوان مثال خودم گذاشتم)
تابعی برای کشیدن خط
تابعی برای کشیدن مستطیل
تابعی برای کشیدن دایره
توابعی برای پاک کردن موارد بالا
تابعی برای راه اندازی (initialize) ال سی دی
توی فایل main.c که همراه کدها هست از هر کدوم از توابع یک نمونه آوردم
از ال سی دی هم بعد از اجرا کدهایی که آپلود کردم یک عکس گرفتم که عکس رو هم به پستم اضافه کردم
در نهایت باید بگم که تمام این کدها رو از خودم ننوشتم و توی بعضی توابع از کدهای یک انسان خیر خواه دیگه ای هم استفاده کردم که کپی رایتش رو توی کامنت کدها رعایت کردم
اگر ابهامی هم در مورد کدها داشتین ایمیلم توی کامنت کدها هست
موفق باشید

kavir
27-07-2011, 17:46
دستت درد نکنه
به زودی هدرهای اتمل هم یه سروسامونی میدیم

1nafar
27-07-2011, 21:02
سلام
منم قبلا برای راه اندازی یه lcd 128*240 به یه همچین هدری نیاز داشتم و یه نمونه برای سری s پیدا کردم و اون رو برای سایر میکرو کنترلر های arm ویرایش کردم . هدر موجود تقریبا مشابه به هدر شماست و فقط در اون نیازی به استفاده از هدر lib_at91samxxx نیست ، همچنین توابعی برای خوندن مختصات تاچ های 128*240 به اون اضافه شده .

mahdiafpr
01-03-2012, 13:34
سلام
درود فراوان بر شما:o
ساعت ها گشتم تا به نوشته ی شما رسیدم
کلی خوشحال شدم چون مشکل من هم دقیقا همین آیتم هایی بود که شما گفته بودید:018:

آقاجون
19-06-2012, 15:59
برادر 1 نفر این برنامه من کامپایل کردم . خطا میده روی error که کلید میکنم خط نشان نمیده . مشکل مال کجاست ؟؟؟ من با at91sam7s256 کامپایل کردم

آقاجون
20-06-2012, 23:22
کسی نبود جواب بده . 1 نفر جان این برنامه خطا میده . من مبتدیم . من با کیل کامپاید کردم خطا میده . با چه میکروئی کامپایل کردی ؟؟:x ؟؟:x ؟؟:x

آقاجون
21-06-2012, 13:14
1 سال بعد . پس این چه مدیر کل سایتیه که تو سایت نمیاد ؟؟؟ :mrgreen:

reihaneh
21-07-2012, 12:00
یه سوال ساده داشتم
می خوام یه برنامه برای برد AT91SAM7S256 توی keil بنویسم ولی وقتی AT91SAM رو انتخاب می کنم یه پیامه میده و کامپایل نمیشه
ولی بعضی بردای دیگه رو که انتخاب می کنم این پیام رو نمیده و کامپایل میشه
چرا؟
باتشکر

1nafar
18-10-2012, 18:31
سلام
برای من که مشکلی نداره ، اگه امکان داره یه تصویر از خطا بزارید .
این هم یه پروژه ی عملی با شماتیک و ... :

fazel459
15-03-2014, 01:40
سلام
من هرکاری کردم نتونستم با این هدر ها چیزی روی نمایشگر نشون بدم.تنظیمات خاصی داره؟
برنامه بدون مشکل کامپایل میشه اما چیزی روی نمایشگر ظاهر نمی شه.لطفا راهنمایی کنید.تشکر

fazel459
16-03-2014, 23:28
سلام
شکر خدا راه اندازی شد.یک سوال : چطور میتونم سایز متن را تغییر بدم و متن های بزرگ و کوچیک را در چند سایز نشان دهم.تشکر

1nafar
23-03-2014, 19:57
سلام
متاسفانه من الان به میکروکنترلر و lcd برای تست عملی دسترسی ندارم . برای اینکار باید توابع مروبط به نمایش متن رو تغییر بدید .
نمونه کد کامپایلر ccs برای نمایش متن در دو سایز :

#ifdef LARGE_LCD
void glcd_text57(unsigned int16 x, unsigned int16 y, char * textptr, unsigned int8 size, int1 color)
#else
void glcd_text57(unsigned int8 x, unsigned int8 y, char * textptr, unsigned int8 size, int1 color)
#endif
{
unsigned int8 j, k, l, m; // Loop counters
unsigned int8 pixelData[5]; // Stores character data

for(; *textptr != '\0'; ++textptr, ++x)// Loop through the passed string
{
if(*textptr < 'S') // Checks if the letter is in the first font array
memcpy(pixelData, FONT[*textptr - ' '], 5);
else if(*textptr <= '~') // Check if the letter is in the second font array
memcpy(pixelData, FONT2[*textptr - 'S'], 5);
else
memcpy(pixelData, FONT[0], 5); // Default to space

// Handles newline and carriage returns
switch(*textptr)
{
case '\n':
y += 7*size + 1;
continue;
case '\r':
x = 0;
continue;
}

if(x+5*size >= GLCD_WIDTH) // Performs character wrapping
{
x = 0; // Set x at far left position
y += 7*size + 1; // Set y at next position down
}
for(j=0; j<5; ++j, x+=size) // Loop through character byte data
{
for(k=0; k < 7; ++k) // Loop through the vertical pixels
{
if(bit_test(pixelData[j], k)) // Check if the pixel should be set
{
for(l=0; l < size; ++l) // These two loops change the
{ // character's size
for(m=0; m < size; ++m)
{
glcd_pixel(x+m, y+k*size+l, color); // Draws the pixel
}
}
}
}
}
}
}

#endif




// Purpose: Turn a pixel on a graphic LCD on or off
// Inputs: 1) x - the x coordinate of the pixel
// 2) y - the y coordinate of the pixel
// 3) color - ON or OFF
void glcd_pixel(unsigned int8 x, unsigned int8 y, int1 color)
#ifdef FAST_GLCD
{
unsigned int8* p;
unsigned int16 temp;
temp = y/8;
temp *= 64;
temp += x;

if(x > 63)
{
p = displayData.right + temp - 64;
}
else
{
p = displayData.left + temp;
}

if(color)
{
bit_set(*p, y%8);
}
else
{
bit_clear(*p, y%8);
}
}
#else
{
BYTE data;
int1 side = GLCD_LEFT; // Stores which chip to use on the LCD

if(x > 63) // Check for first or second display area
{
x -= 64;
side = GLCD_RIGHT;
}

output_low(GLCD_DI); // Set for instruction
bit_clear(x,7); // Clear the MSB. Part of an instruction code
bit_set(x,6); // Set bit 6. Also part of an instruction code
glcd_writeByte(side, x); // Set the horizontal address
glcd_writeByte(side, (y/8 & 0xBF) | 0xB8); // Set the vertical page address
output_high(GLCD_DI); // Set for data
glcd_readByte(side); // Need two reads to get data
data = glcd_readByte(side); // at new address

if(color == ON)
bit_set(data, y%8); // Turn the pixel on
else // or
bit_clear(data, y%8); // turn the pixel off

output_low(GLCD_DI); // Set for instruction
glcd_writeByte(side, x); // Set the horizontal address
output_high(GLCD_DI); // Set for data
glcd_writeByte(side, data); // Write the pixel data
}
#endif

fazel459
30-03-2014, 10:31
سلام لطفا فایل تابع فونت font که استفاده شده را بگذارید
تشکر

1nafar
31-03-2014, 00:15
سلام
فایل کتابخونه پیوست شد .
همونطور که قبلا هم گفتم این کتابخونه برای میکروکنترلر های pic و کامپایلر ccs pic c و lcd های مبتنی بر چیپ ست k0108 هست .

gbg
27-11-2014, 12:34
سلام
دیتا شیت این رو کسی نداره؟
ترتیب پایه ها رو می خوام
سمت چپ 22 تا پایه داره
سمت راست دو سطر پایه داره پایین 11 تا و سطر بالا 10 تا