ايران ويج

نسخه‌ی کامل: درخواست کتابخانه GLCD برای کدویژن
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
سلام به همگی

آقا من بدبخت شدم.... اگر مرام دارید یک کمکی به من بیچاره بکنید.


من در به در دنبال یک کتابخانه برای راه اندازی GLCD با چیپست KS0108 میگرد و در کدویژن کار میکنم.

یه لینکی که توسط شخصی به اسم مزارعی بود پیدا کردم ولی موقعی که میخوام با آن توابع یک خط افقی رو LCD بکشم ضخامت خط خیلی زیاد هست یعنی بجای نفطه از کاراکتر "|" استفاده شده و این کاراکتر ها پشت سر هم قرار گرفتند و خط افقی رو ساختند که بدرد نمیخوره....

http://elecom.agape.ir/ks0108-lib/

برای همین میخوام یک تابع کتابخانه ای بمن معرفی کنید که بتونه کارهای ساده مثل رسم خط و رسم یک نقطه در مختصات دلخواه وچاپ کاراکتر رو انجام بده.

من پروژه ام رو باید دی ماه تحویل میدادم ولی به خاطر همین بدبختی تحقیر شدم و الان هم نیازمند کمک شما هستم.

با تشکر.
سلام
ورژن جديد كدويژن (2.05.3) توي ويزاردش اين قابليت رو گذاشته . و كافيه شما مثل ال سي دي كاراكتري پايه هاي ال سي دي گرافيكي رو به پايه هاي دلخواه ميكرو وصل كنين . فقط يه نكته اينكه تمام پايه هاي ديتاي ال سي دي گرافيكي رو به يك پورت وصل نكنيد ، چون جواب نميده ، حد اقل يكي از پايه هاي ديتا رو به يك پورت ديگه وصل كنين.

اينجا رو نگاه كنين :

http://www.iranled.com/forum/thread-22019.html


(۰۲-اسفند-۱۳۹۰, ۲۱:۲۰:۲۴)علي برقي نوشته است: [ -> ]سلام
ورژن جديد كدويژن (2.05.3) توي ويزاردش اين قابليت رو گذاشته . و كافيه شما مثل ال سي دي كاراكتري پايه هاي ال سي دي گرافيكي رو به پايه هاي دلخواه ميكرو وصل كنين . فقط يه نكته اينكه تمام پايه هاي ديتاي ال سي دي گرافيكي رو به يك پورت وصل نكنيد ، چون جواب نميده ، حد اقل يكي از پايه هاي ديتا رو به يك پورت ديگه وصل كنين.

اينجا رو نگاه كنين :

http://www.iranled.com/forum/thread-22019.html
ممنونم

بله ... اتفاقا این ورژن رو نصب کردم و باهاش کار کردم... فقط مشکلی که دارم اینه که توابع مربوط به این کتابخانه در ورژن 2.05.3 خیلی زیاد هستند و من نمیدونم کدامیک برای چه کاری هستند و چه پارامتر هایی میگیرند.

چجوری میتونم این مورد رو یاد بگیرم...؟ تو هیچ کتابی هم توضیحش داده نشده...!!

من دارم help كدويژن ( قسمت هدر فايل glcd ) رو ترجمه ميكنم . ايشالا تموم شد ميزارم .
ولي اگر عجله داري چنتا دستور پركاربردشو براتون توضيح ميدم :
کد:
glcd_clear()
اين تابع براي پاك كردن كل صفحه

کد:
glcd_setpixel (x,y)
اين تابع براي روشن كردن يك نقطه خاص در ال سي دي . كه 0و0 نقطه گوشه سمت چپ و بالا ميشه و 63و127 گوشه سمت راست و پايين .

کد:
glcd_putcharxy( x, y, char c)

اين تابع براي نوشتن يك كاراكتر در نقطه اي با مختصات x و y

کد:
glcd_outtextxy( x, y, char *str)

اين تابع براي نوشتن يك رشته ( متن) كه در حافظه اس رم هست ، در مختصات x و y .

کد:
glcd_outtextxye( x, y, char *str)

اين تابع براي نوشتن يك رشته ( متن) كه در eeprom هست ، در مختصات x و y .

کد:
glcd_outtextxyf( x, y, flash char *str)

اين تابع براي نوشتن يك رشته ( متن) كه در حافظه flash ميكرو هست ، در مختصات x و y .

کد:
glcd_putimage( left, top, unsigned char *pimg, GLCDBLOCKMODE_t mode)
براي نمايش عكس واقع شده در حافظه Sram روي ال سي دي گرافيكي كه براي تعيين نقطه شروع بايد به جاي left و top به تيب فاصله حاشيه عكس تا چپ و بالا را قرار داد ( به پيكسل )

اگر به انتهاي اين تابع e اضافه شود از روي eeprom و اگر f اضافه شود از روي حافظه فلش ميخواند . مثل تابع قبلي .

درضمن به جاي مد يكي از مدهاي پايين رو بايد انتخاب كنيد :
کد:
GLCD_PUTCOPY                  
                                                                        
GLCD_PUTXOR                
                                                                        
GLCD_PUTOR                    
                                                                        
GLCD_PUTNOT                    
                                                                      
GLCD_PUTAND

كه همونطور كه از اسمش پيداست حالت اول كل صفحه پاك ميشه و عكس جديد توش قرار ميگيره و حالت دوم تنها عكس جديد رو روي صفحه نمايش ميده و اگر پيكسلي قبلا روشن بود ، به همان حالت باقي ميمونه و حالت سه و چهار هم به همين منوال .
البته ميتونين به جاي اين اسم ها عدد مربوط رو قرار بديد . مثلا به جاي حالت اولي ميزاريم 1 و ...

کد:
glcd_getimage( left, top, width, height, unsigned char *pimg)

اين تابع براي ذخيره عكس از روي صفحه ال سي دي گرافيكي از نقطه شروع كه مختصات آنرا با left و top مثل تابع قبلي تعيين ميكنيم و اندازه خاص از صفحه . يعني اگر ميخواهيم مثلا تصويري كه كل صفحه را در بر گرفته ، ذخيره كنيم بايد به جاي left و top صفر ( 0 ) بگذاريم و به جاي width و height به ترتيب 127 و 63 بگذاريم .
براي اينكه هرجاي دلخواه از صفحه را ذخيره كنيم شبيه به همين كار را انجام ميدهيم .

در ضمن اگر به انتهاي اين تابع e اضافه كنيم در متغييري كه در eeprom قرار دارد ذخيره ميكند و با توجه به اينكه حافظه فلش از بيرون ميكرو قابل نوشتن است ، پس مد نوشتن در حافظه فلش نداريم .

اميدوارم اين تابع ها كارتونو راه بندازه .
بی نهایت ممنونم.Clap

امروز با همین توابعی که شما برای من قرار دادید یه برنامه نوشتم که دوتا محور عمود بر هم رو ترسیم کنه.

ظاهرا خوب جواب دادهHappyHappy
[تصویر:  38oykzs98z54u9usfid.gif]

اینهم برنامه که داخل حلقه While از توابعی که شما توضیح داده بودید استفاده کردم و جواب داد ...!!

کد:
#include <mega16.h>

// Graphic LCD functions
#include <glcd.h>

// Font used for displaying text
// on the graphic LCD
#include <font5x7.h>
// Declare your global variables here


void main(void)
{
int i,j;
// Declare your local variables here
// Graphic LCD initialization data
GLCDINIT_t glcd_init_data;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;


// Specify the current font for displaying text
glcd_init_data.font=font5x7;
// No function is used for reading
// image data from external memory
glcd_init_data.readxmem=NULL;
// No function is used for writing
// image data to external memory
glcd_init_data.writexmem=NULL;

glcd_init(&glcd_init_data);

while (1)
{
glcd_clear();
for (i=0;i<128;i++){
glcd_setpixel (64,i);
}
for (j=0;j<128;j++){
glcd_setpixel (j,32);
}
glcd_putcharxy( 5, 5, '$');
}
}

پس محبت کنید و اون HELP مخصوص ال سی دی گرافیکی کدویژن رو ترجمه بفرمایید تا هم من و هم خودتون و هم دیگران بتونیم از این قابلیتی که در ورژن جدید کدویژن قرار داده شده استفاده کنیم.
___________________________________________________

نکته مهم برای سایر کاربرانی که میخواهند با GLCD کار کنند.

این نوع ال سی دی ها بدون پتانسیومتر و کریستال خارجی هرگز چیزی نمایش نمیدهند لذا حتما باید از پتانسیومتر و کریستال خارجی که با پایه های xtal1 و xtal2 وصل میشه استفاده کنید.
نقل قول: پس محبت کنید و اون HELP مخصوص ال سی دی گرافیکی کدویژن رو ترجمه بفرمایید تا هم من و هم خودتون و هم دیگران بتونیم از این قابلیتی که در ورژن جدید کدویژن قرار داده شده استفاده کنیم.
شما اگر علاقه مند به كار كردن هستيد بهترهه خودتون شروع كنيد help رو بخونيد ، چون هميشه ، كسي مثل علي جون نيست كه از اين كارا انجام بدهه ...

نقل قول: نکته مهم برای سایر کاربرانی که میخواهند با GLCD کار کنند.

این نوع ال سی دی ها بدون پتانسیومتر و کریستال خارجی هرگز چیزی نمایش نمیدهند لذا حتما باید از پتانسیومتر و کریستال خارجی که با پایه های xtal1 و xtal2 وصل میشه استفاده کنید.
پتانسيومتر و يا مقاومت كه 100 البته نيازهه ،‌براي هر LCD اي نيازهه ...
در مورد كريستال خارجي ، فكر نمي كنم اينطور باشه ... !
علي جون صحت دارهه ؟!!!

موفق باشيد.
يا علي.
(۰۳-اسفند-۱۳۹۰, ۱۴:۰۲:۴۸)sharin نوشته است: [ -> ]
نقل قول: پس محبت کنید و اون HELP مخصوص ال سی دی گرافیکی کدویژن رو ترجمه بفرمایید تا هم من و هم خودتون و هم دیگران بتونیم از این قابلیتی که در ورژن جدید کدویژن قرار داده شده استفاده کنیم.
شما اگر علاقه مند به كار كردن هستيد بهترهه خودتون شروع كنيد help رو بخونيد ، چون هميشه ، كسي مثل علي جون نيست كه از اين كارا انجام بدهه ...

نقل قول: نکته مهم برای سایر کاربرانی که میخواهند با GLCD کار کنند.

این نوع ال سی دی ها بدون پتانسیومتر و کریستال خارجی هرگز چیزی نمایش نمیدهند لذا حتما باید از پتانسیومتر و کریستال خارجی که با پایه های xtal1 و xtal2 وصل میشه استفاده کنید.
پتانسيومتر و يا مقاومت كه 100 البته نيازهه ،‌براي هر LCD اي نيازهه ...
در مورد كريستال خارجي ، فكر نمي كنم اينطور باشه ... !
علي جون صحت دارهه ؟!!!

موفق باشيد.
يا علي.
help رو بخونم...؟؟ کدام help...؟ از کجا پیداش کنم...؟

در مورد کریستال خارجی.... من وقتی کریستال رو برمیدارم تمام تصویر بهم میخوره ولی با گذاشتن کریستال خارجی 16 مگاهرتز تصویر همینی میشه که در شکل بالا میبینید.

عین همین مورد رو با ال سی دی کاراکتری هم داشتم. نمیدونم. شاید از تنظیمات فیوزبیتها باشه که میکرو را مستلزم به استفاده از کریستال خارجی میکنه. ولی من هرگز به فیوزبیتها دست نمیزنم.

مگر با ورژن جديدهه كار نمي كني ... ؟ هر نرم افزار يه HELP دارهه ... ، تو خود نرم افزار ، قسمتي كه نوشته FILE , EDIT و ... ادامه بده برو آخر آخر ، نوشته help !!

توي HELP اش برو از قسمت INDEX يا SEARCH اين GLCD رو سرچ كن و تاپيك هاش رو بخون ...

در مورد كريستال معلومه ... !! :d
وقتي فيوز بيت ها رو خارجي تنظيم كرديد تا كريستال خارجي نباشه ميكرو كار نمي كنه ... :d
چه برسه به glcd و ... !!
در ضمن وقتي فيوز بيت ها در حالت خارجي هست ،‌كريستال رو به هيچ عنوان بر نداريد ... !
اگر فيوز بيت ها روي RC داخلي باشه هم كار مي كنه و وجود كريستال خارجي ضروري نيست ...

موفق باشيد.
يا علي.
(۰۳-اسفند-۱۳۹۰, ۱۵:۰۹:۰۵)sharin نوشته است: [ -> ]مگر با ورژن جديدهه كار نمي كني ... ؟ هر نرم افزار يه HELP دارهه ... ، تو خود نرم افزار ، قسمتي كه نوشته FILE , EDIT و ... ادامه بده برو آخر آخر ، نوشته help !!

توي HELP اش برو از قسمت INDEX يا SEARCH اين GLCD رو سرچ كن و تاپيك هاش رو بخون ...

در مورد كريستال معلومه ... !! :d
وقتي فيوز بيت ها رو خارجي تنظيم كرديد تا كريستال خارجي نباشه ميكرو كار نمي كنه ... :d
چه برسه به glcd و ... !!
در ضمن وقتي فيوز بيت ها در حالت خارجي هست ،‌كريستال رو به هيچ عنوان بر نداريد ... !
اگر فيوز بيت ها روي RC داخلي باشه هم كار مي كنه و وجود كريستال خارجي ضروري نيست ...

موفق باشيد.
يا علي.

که اینطور.....

نمیدونم چرا.... ولی احساس میکنم شما دارید برای ما شاخ میشید...!!Sad

شما همیشه لحن صحببتون اینجوری هست..؟Sad

ولی بازهم بابت توضیحت ممنون.
!!
ما كي باشيم كه برا ديگرون شاخ بشيم !! Biggrin
راستش از اين جمله اتون خوشم نيومد :

نقل قول: پس محبت کنید و اون HELP مخصوص ال سی دی گرافیکی کدویژن رو ترجمه بفرمایید تا هم من و هم خودتون و هم دیگران بتونیم از این قابلیتی که در ورژن جدید کدویژن قرار داده شده استفاده کنیم.

گفتم يكمي حالگيري كنم ...! Biggrin
آدماي تنبل هميشه رو اعصابن ... ( منم از اين تيكه ي نوشته اتون همچين احساسي بهم دست داد ... )

شرمنده اگر ناراحت شدي ... ، قصدم رنجوندن نبود ... !
اينجا چون مي نويسيم ، ممكن از لحن نوشته ها برداشت بدي بشه ...

موفق باشي.
يا علي.

(۰۳-اسفند-۱۳۹۰, ۱۶:۱۹:۴۵)sharin نوشته است: [ -> ]!!
ما كي باشيم كه برا ديگرون شاخ بشيم !! Biggrin
راستش از اين جمله اتون خوشم نيومد :

نقل قول: پس محبت کنید و اون HELP مخصوص ال سی دی گرافیکی کدویژن رو ترجمه بفرمایید تا هم من و هم خودتون و هم دیگران بتونیم از این قابلیتی که در ورژن جدید کدویژن قرار داده شده استفاده کنیم.

گفتم يكمي حالگيري كنم ...! Biggrin
آدماي تنبل هميشه رو اعصابن ... ( منم از اين تيكه ي نوشته اتون همچين احساسي بهم دست داد ... )

شرمنده اگر ناراحت شدي ... ، قصدم رنجوندن نبود ... !
اينجا چون مي نويسيم ، ممكن از لحن نوشته ها برداشت بدي بشه ...

موفق باشي.
يا علي.

واقعا برای طرز فکر و تربیت شما متاسفم...!!

مگر ان جمله ای که من بیان کردم خطاب به شما بود که اینگونه برخورد کردید یا مگر فکر کردید ما قادر به جوابگویی نیستیم...؟

به شرفم قسم من نیز بلدم حالگیری کنم ولی شعورم میرسه که تو یه انجمن علمی و جایی که افراد تحصیلکرده و بافرهنگ در آن فعالیت میکنند مودبانه و مثل آدم صحبت کنم.

شما با خودتون فکر کردید که من تنبل هستم ولی هرگز ذهنیتتون به اینکه ((ممکنه ارسال کننده ی آن جمله اصلا نداند مقالاتی که قرار است ترجمه بشوند در چه جایی پیدا میشوند)) نرسید.

برای همین هست که میگم برای طرز تفکر وفرهنگی که شما رو برای حالگیری از دیگران تربیت کرده متاسفم.
صفحه‌ها: 1 2 3