سلام
يه سوال. چرا با فرمول زير رنگ پس زمينه به رنگ دلخواه تغيير نميکنه و رنگ ال سی دی n96 فقط سياه ميشه؟
کد:char n [10]="01x001f"; lcd_background_color(atoi(n));
اگه سوالم غير حرفه ايه ببخشيد
سلام
يه سوال. چرا با فرمول زير رنگ پس زمينه به رنگ دلخواه تغيير نميکنه و رنگ ال سی دی n96 فقط سياه ميشه؟
کد:char n [10]="01x001f"; lcd_background_color(atoi(n));
اگه سوالم غير حرفه ايه ببخشيد
یعنی هیشکی تو این انجمن نیست که از این مشکل سردربیاره و کمکم کنه؟؟؟
سلام
این دستور رو خودتون نوشتین ؟؟؟
میشه بگید این دو خط قراره چیکار کنن ؟؟؟
خط اول که یک آرایه با طول 10 ایجاد کرده که رشته " 01x001f " رو درونش ذخیره کرده
خط دوم هم دستور مربوط به رنگ پس زمینه السیدی هست که کد درون پرانتز تعیین کننده رنگ السیدی هست ..
حالا عبارت " atoi " چی هست ؟؟؟
یا شاید کد رو ناقص قرار دادید ؟؟؟!!
*** اللّهم عجّل لولیک الفرج ***
سلام
تقریبا خودم نوشتم
این کد بخشی از برنامه دریافت کد هگز از mmc و نمایش در ال سی دی ان96 هستش
راستش برنامه با f_read و f_lseek میاد تک تک کد رنگها رو از فایل تکست میخونه و در متغیر buffer که الآن همون n هستش ذخیره میکنه ولی چون فرمتش []char هستش اونو به int تبدیلش کنم که اینکار رو فکر کنم با تابع atoi از کتابخانه string باید انجام داد. ولی وقتی این عمل تبدیل ("0x001f" به 0x001f) انجام میشه انگار نتیجش یه چیز دیگه میشه و رنگ پس زمینه ال سی دی فقط سیاه میشه
البته اینو میدونم که روش نشون دادن فایلهای متنی حاوی کد هگز عکس bmp روی ال سی دی ان96 اینجوری نیست ولی اگه این روش جواب بده لازم نیست برم کتابخونه های دیگه مثل sdbmp یا ... رو وارد برنامه بکنم
اگه کمکم بکنین لطف خیلی بزرگی بهم کردین
خوب احتمالا مشکل یا از تابع atoi یا طریقه استفادش هست
شما بیا توی ارایه ذخیره نکن و تک تک کدی که میخونی رو مستقیم نمایش بده ببین atoi جواب میده
*** اللّهم عجّل لولیک الفرج ***
خب bufferی که اطلاعات خونده شده از mmc تو اون قرار میگیره از نوع []char هستش و باید هم باشه چون تو تعریف f_read بافر باید از نوع char یا int آرایه دار باشه
FRESULT f_read (FIL* fp, void* buff, unsigned int btr, unsigned int* br);
منظور من اینه که کد خونده شده رو بجای آرایه توی یک متغیر از نوع char ذخیره کن بعد ببین atoi جواب میده یا نه .!!!
مگر اینکه مجبور باشیم حتما متغیر ازنوع آرایه انتخاب کنیم ....
*** اللّهم عجّل لولیک الفرج ***
آقا حسین void*buff اجازه نمیده که buffer غیر آرایه باشه.شاید من خوب منظور شما رو متوجه نشدم
سلام و درود
به به جناب DOLOOP
چندتا مشکل هست
1.تابع ()atoi توی لایبرری stdlib.h هست چطوری کامپایلر ارور نداده؟
2.شکل کلی به صورت زیر
[PHP]int atoi(char *str)[/PHP]
3.بنا به گفته ی محمد مهدی پرتویی فر
اگر عمل این تابع با موقعیت انجام نشود عدد صفر را باز میگرداند
(تا اونجایی هم که من حضور ذهن دارم 0 کد رنگ مشکی هست)
شما اون رو بیرون پرانتز قرار بده و خروجی رو بریز توی یک متغیر int یا رشته int
بعد اون رو بریز توی تابع رنگ .
و یه جایی رو من مشکل دارم
خروجی تابع شماunsigned int* br هست
پس چرا توی char ذخیره میکنید؟
سلام مهندس
نظر من اینه که رنگ(مقدار rgb) هر پیکسل رو به باینری تبدیلش کنی مثلا" اگه یه پیکسل مقادیرش به این صورت بود: R=255 , g=123 , b=89
به جای مقادیر 123و255و89 مقدار اسکی رو قرار بدی. خودم با همین روش یه عکس رو تو السیدی 7 اینچ نمایش دادم با کیفیت فول و عالی
نرم افزار مبدلش رو هم نوشتم سعی میکنم تا همین امشب واست آپلودش کنم.
موفق باشیم
_____________________________________
_____________________________________
کتابخونهتابع ()atoi توی لایبرری stdlib.h هست چطوری کامپایلر ارور نداده؟
3.بنا به گفته ی محمد مهدی پرتویی فر
اگر عمل این تابع با موقعیت انجام نشود عدد صفر را باز میگرداند
(تا اونجایی هم که من حضور ذهن دارم 0 کد رنگ مشکی هست)
شما اون رو بیرون پرانتز قرار بده و خروجی رو بریز توی یک متغیر int یا رشته int
بعد اون رو بریز توی تابع رنگ .
و یه جایی رو من مشکل دارم
خروجی تابع شماunsigned int* br هست
پس چرا توی char ذخیره میکنید؟stdlib.h رو اول برنامه اینکلودش کردم
حرف شما کاملا درسته. خروجی atoi رو امتحان کردم صفر میشه. چرا؟ اینکه یه تابع استانداردیه که آرایه از نوع char میگیره و int بدون آرایه تحویل میده؟ببخشید منظورتون از اینکه اونو از داخل پرانتز بیارم بیرون چیه؟ یعنی تو تابع atoi قرارش ندم؟آره خروجیf_read از نوع *int هست
ویرایش توسط javad1400 : 19-02-2014 در ساعت 21:00
[PHP]int a [];
a= atoi(n);[/PHP]
طرز صحیح استفاده از دستور به شکل فوق هست
بعد a رو داخل تابع رنگ قرار بده
تست کن ببین جواب میده یا نه؟
آقا صادق a از نوع int آرایه دار هستش ولی خروجی atoi از نوع int بدون آرایه هست. اجازه اینکارو نمیده
سلام
با تشکر از همه دوستانی که راهنماییم کردند
بالاخره تونستم عکس bmp رو از mmc روی lcd n96 بیارم
سلام
بالاخره چطوری مشکل حل شد؟؟؟با تشکر از همه دوستانی که راهنماییم کردند
بالاخره تونستم عکس bmp رو از mmc روی lcd n96 بیارم
ما هم منتظر نتیجه بودیم !!!
لطفا ایراد کار رو بگید تا اگرروزی کسی به مشکل شما برخورد بتونه از این مطلب استفاده کنه
*** اللّهم عجّل لولیک الفرج ***
درود.
دوستان این یه تیکه ساده رو متوجه نمیشم.یکی میشه توضیح بده؟
اینکد برای خوندن از adc :
توی قسمت اول که با یک کردن ADSC ، واحد ADC شروع به Conversation میکنه.تو قسمت دوم تا زمانی که ADSC صفر نشده(وقتی Conversation تموم شه صفر میشه) میمونه.اما این قسمتشو نمیفهمم چجوری میمونه؟وقتی ADSC مقدار صفر رو بگیره.موقع چک کردن شرط دوباره ADSC میشه 1 و اَندش با ADSCR هم True میشه و دوباره شرط برقراره که!اینو میشه توضیح بدید؟کد:ADCSRA|=(1<<ADSC); while(ADCSRA&(1<<ADSC));
Mega 32
ویرایش توسط ERSA : 10-04-2014 در ساعت 23:07
سلام به دوستان.من تازه عضو شدم و حقیقتش نمیدونم برای مشکلم باید چطوری و کجا پیام بذارم.واسه همین اینجا گذاشتم.
یه مشکل داشتم اگه لطف کنین کمک کنید خیلی ممنون میشم.
داستان از این قراره که تو برنامه بسکام دوتا منبع وقفه فعال کردم.این منابع وقفه باید 10 ثانیه بعد از شروع برنامه فعال بشن.اگه بعد از 10 ثانیه کلید int0 زده شد صدای آژیر در میاد و اگه کلید int1 زده شد یه رله روشن میشه.تا اینجا هیچ مشکلی ندارم. مشکل اینجاست که اگه قبل از 10 ثانیه هر کدوم از کلیدها زده بشه ، وقتی 10 ثانیه تموم شد صدای آژیر در میاد در صورتی که تو برنامه ای که نوشتم منابع وقفه تازه بعد 10 ثانیه باید فعال بشن و فشردن کلید قبل از فعال سازی نباید تاثیری بذاره!!!
فایل پروتئوس و بسکام هم گذاشتم.مرسی.منتظرم
فایلت دانلود نمیشه دوست عزیز ... یه جای دیگه آپلودش کن و لینکشو بده