شما نام پایه ها را در یک فایل header بر حسب سخت افزار define می کنید و در توابع هم از نام های تعریف شده استفاده می کنید که در صورت تغییر سخت افزار، تنها همان تعریف اولیه تغییر خواهد کرد و متن توابع به قوت خود باقی خواهد ماند. اگر منظور دیگری دارید بصورت مشخص تر و با ذکر مثال سوال کنید. اگر منظور از نوشتن header روش نوشتن فایل های با پسوند h باشد که در این فایل ها در ابتدا محافظ فایل و سپس include های لازم و define ها و prototype توابع نوشته می شود و متن توابع و تعریف متغیرها در فایل همنام و با پسوند c قرار داده می شود.
در مورد 3 فایل با پسوند hex که در وضعیت release ایجاد می شود، یک فایل با نام ساده برای برنامه ریزی در flash و فایل با پسوند eeprom_ برای برنامه ریزی در eeprom تولید می شود. اما یک فایل سوم با پسوند data_ هم وجود دارد که مطابق توضیحات نه چندان واضح iar برای شرایطی تولید می شود که بخشی از فضای حافظه ram در اختیار یک حافظه غیر فرار قرار داده شود. شرایطی که برای تحقق چنین وضعیتی در خانواده avr قابل تصور است در زمانی است که در شماره هایی مانند mega128، در فضای ram خارجی مثلا یک eprom قرار داده شود و اطلاعات در زمان مقتضی از روی آن خوانده شود. به همین دلیل ظاهرا یک کپی از محتویات مقادیر اولیه فضای data در فایل جداگانه ای ذخیره می شود تا در صورت تحقق چنین شرایطی از آن برای برنامه ریزی اولیه استفاده شود.
اینکه بتونم یک تابع داشته باشم که این تنظیمات رو انجام بده میشه؟
+
برای تبدیل عدد به رشته اسکی چه تابعی رو باید به کار برد؟
اگه میشه یک خورده در مورد XLINK , XLINK Commands توضیح بدید و اینکه اصلا چقدر لازم هست که با این کامند ها آشنا بود و اینکه نمیشه بجای نوشتن این کامند ها تنظیمات نرم افزاری انجام داد
ممنون
اینکه بتونم یک تابع داشته باشم که این تنظیمات رو انجام بده میشه؟
برای بیان منظور خود یک مثال بزنید.
نوشته اصلی توسط شهریار رجب زاده
برای تبدیل عدد به رشته اسکی چه تابعی رو باید به کار برد؟
پست شماره 74 در همین تاپیک را ببینید.
نوشته اصلی توسط mojtaba_led
و اینکه اصلا چقدر لازم هست که با این کامند ها آشنا بود
در اکثر مواقع نیازی به دستورات linker بصورت مستقیم وجود ندارد و با انجام تنظیمات درست عمل کامپایل و لینک به درستی انجام می شود.
اوژن: به معنای افکننده و شکست دهنده است
دانایی، توانایی است-Knowledge is POWER
برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
الان که به این سوالم نگاه میکنم میبنم اصلا ایده که برای پرسیدن این سوال توی ذهنم ایجاد شده بود به پاسخ دلخواهش نمیرسه چون فکر کنم REF مخفف REFERENCE هست نه PREFER oo:
ببینید مثلا یک تابع داشته باشم که دو تا ورودی داشته باشه و بیاد و پورت های دیتا و کنترل رو با مقدار دهی به تابع معین کنه
نوشته اصلی توسط طراح
پست شماره 74 در همین تاپیک را ببینید.
دیده بودم ولی مشکل اینجاست که امتحان کردم ولی چرت و پرت روی lcd میاد بعد از یه مدت کوتاه
در مورد چیز هایی که داخل " " در این تابع قرار میگیره لطفا بیشتر توضیح بدید ممنون
ببینید مثلا یک تابع داشته باشم که دو تا ورودی داشته باشه و بیاد و پورت های دیتا و کنترل رو با مقدار دهی به تابع معین کنه
در این مورد یه فایل تو وبلاگم هست به نام (دانلود اموزش مقدماتی برنامه نویسی به زبان c برای AVR) در مورد تابع نویسی هم گفته شاید به دردتون خورد،در ضمن فکر میکنم تو سورس های گذاشته شده برای lcd مثالش باشه.
دکتر شریعتی:
زنده بودن را به بیداری بگذرانیم که سالها به اجبار خواهیم خفت.
الان که به این سوالم نگاه میکنم میبنم اصلا ایده که برای پرسیدن این سوال توی ذهنم ایجاد شده بود به پاسخ دلخواهش نمیرسه چون فکر کنم REF مخفف REFERENCE هست نه PREFER oo:
دوستان من برداشتم از نحوه محاسبه مقدار RSTACK , CSTACK از طریق فایل MAP استفاده از مقادیر زیر به عنوان حداقل سایز این دو ناحیه هست درسته ؟( این مسئله رو من توی چد تا برنامه اخیر که با این کامپایلر نوشتم تست کردم اما بعضی اوقات قاطی میکرد )
سلام من یه مشکلی با تابع sprintf دارم
میخوام یک متغیر unsigned int رو بریزم توی رشته ولی نمیدونم چجوری
برای انواع دیگر متغیر ها و نوع unsigned اون ها هم نمیدونم باید چی کار کنم
سلام من یه مشکلی با تابع sprintf دارم
میخوام یک متغیر unsigned int رو بریزم توی رشته ولی نمیدونم چجوری
برای انواع دیگر متغیر ها و نوع unsigned اون ها هم نمیدونم باید چی کار کنم
سلام آقا شهریار
برای ارسال مقادیر عددی و کاراکتر ها میتونید اونها را با استفاده از دستور sprintf به رشته و سپس ارسال کنید :
char str [];
sprintf(str,"%width.precisionمقدار عددی یا تک کاراکتر یا یک عبارت رشته ای ",کاراکتر)
1. برای تک کاراکتر - - - > کاراکتر = c
2. برای عدد صحیح علامت دار - - - > کاراکتر = d
3. برای نمایش عدد ممیز شناور به صورت علمی - - - > کاراکتر = e
4 . برای عدد اعشاری - - - > کاراکتر = f
5. برای عبارت رشته ای واقع در sram - - - > کاراکتر = s
6. برای عدد صحیح بدون علامت - - - > کاراکتر = u
7. برای فرم هگزه با حروف بزرگ - - - > کاراکتر = X
8. برای فرم هگزه با حروف کوچک - - - > کاراکتر = x
9. برای عبارت رشته ای واقع در حافظه flash - - - > کاراکتر = P
10. برای نمایش علامت - - - > کاراکتر = %
سلام آقا شهریار
برای ارسال مقادیر عددی و کاراکتر ها میتونید اونها را با استفاده از دستور sprintf به رشته و سپس ارسال کنید :
char str [];
sprintf(str,"%width.precisionمقدار عددی یا تک کاراکتر یا یک عبارت رشته ای ",کاراکتر)
1. برای تک کاراکتر - - - > کاراکتر = c
2. برای عدد صحیح علامت دار - - - > کاراکتر = d
3. برای نمایش عدد ممیز شناور به صورت علمی - - - > کاراکتر = e
4 . برای عدد اعشاری - - - > کاراکتر = f
5. برای عبارت رشته ای واقع در sram - - - > کاراکتر = s
6. برای عدد صحیح بدون علامت - - - > کاراکتر = u
7. برای فرم هگزه با حروف بزرگ - - - > کاراکتر = X
8. برای فرم هگزه با حروف کوچک - - - > کاراکتر = x
9. برای عبارت رشته ای واقع در حافظه flash - - - > کاراکتر = P
10. برای نمایش علامت - - - > کاراکتر = %
خوب من برنامم اینه که مقدار یک متغیر unsigned int دقیقا روی lcd نشون داده بشه از کدوم حرف استفاده کنم "%o" رو هم استفاده کردم چرت و پرت نشون میده اما اول کار درسته CSTACK روی 0xff گذاشتم پایین تر میکرو مدام ریست میکنه
بنظرتون چی کار کنم؟
خوب من برنامم اینه که مقدار یک متغیر unsigned int دقیقا روی lcd نشون داده بشه از کدوم حرف استفاده کنم "%o" رو هم استفاده کردم چرت و پرت نشون میده اما اول کار درسته CSTACK روی 0xff گذاشتم پایین تر میکرو مدام ریست میکنه
بنظرتون چی کار کنم؟
از حرف u
مقدار cstack و rstack رو با توجه به فایل map تنظیم کنید
استفاده از sprintf توی این کامپایلر اصلا مغرون به صرفه نیست
حجم زیادی از فلش رو پر میکنه
سوال:برنامه نوشته شده که حجم فایل تولیدی بیشتر از 32 کیلو بایت هست
ایا خود iar نسبت به افزایش حجم خطا یا گزارشی نمیده
هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...
تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد
دیدگاه