امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
TRY-CATCH-AVR GCC
نویسنده پیام
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #1
TRY-CATCH-AVR GCC
سلام این دستور
TRY - CATCH توی AVR GCC چی کار میکنه؟
کاربردی که توی برنامه نویسی کامپیوتر داره رو داره یا نه چیز دیگه ای هست؟Exclamation

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

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۱۵-آذر-۱۳۹۱, ۲۱:۰۷:۰۴
وب سایت ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #2
RE: TRY-CATCH-AVR GCC
باز هم خودم جواب خودم رو بدمBiggrin
--
بله این TRY - CATCH این بازی ها مال c++ هست و خوب برای میکرو هم کامپایلر c++ وجود داره
ولی اینکه چرا وقتی برنامه c مینویسیم این هارو هم میاره برمیگرده به مشکل اون برنامه ای که تکمیل کد رو برای ما انجام میده وگرنه توی C هیچ کاربردی ندارهBiggrin

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

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۰۴-مهر-۱۳۹۲, ۰۰:۴۶:۱۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73, salehjg, babyy
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #3
RE: TRY-CATCH-AVR GCC
یه سوالم من داشتم... مرتبط نبود انتقال بدین به چت باکس علمی لطفا Biggrin

چند وقت پیش برنامه ای نوشته بودم..(برا میکرو)

یه آرایه 4 تایی تعریف شده بود

ولی حین اجرای برنامه اشتباهی ایندکس 5 ام رو میخوندم...

برنامه هم کار میکرد!!
یعنی دستور هایی بعدش رو هم اجرا میکرد...

اما مقدار متغیر کلا وجود نداشت...
حتی با دیباگر هم نگاه کردم، جلوش هیچی نمی نوشت...(مقدار نداشت)

اینجور شرایط رو چطوری میشه کنترل کرد؟( زبون C )

+

تا حالا کسی با ++C برای میکرو برنامه نوشته؟ میشه؟ نمیشه؟ چطوریه؟
توی پروژه های سنگین، C اذیت میکنه... مخصوصا بابت متغیر های global و ...
۰۴-مهر-۱۳۹۲, ۰۰:۵۷:۲۳
وب سایت ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #4
RE: TRY-CATCH-AVR GCC
بیانیه: از این تاریخ به سوالات بیش از نیم خط پاسخی داده نخواهد شدBiggrin

(۰۴-مهر-۱۳۹۲, ۰۰:۵۷:۲۳)salehjg نوشته است: چند وقت پیش برنامه ای نوشته بودم..(برا میکرو)
یه آرایه 4 تایی تعریف شده بود
ولی حین اجرای برنامه اشتباهی ایندکس 5 ام رو میخوندم...
برنامه هم کار میکرد!!
یعنی دستور هایی بعدش رو هم اجرا میکرد...
اما مقدار متغیر کلا وجود نداشت...
حتی با دیباگر هم نگاه کردم، جلوش هیچی نمی نوشت...(مقدار نداشت)
اینجور شرایط رو چطوری میشه کنترل کرد؟( زبون C )
این چیز رو با این کچ و اینا نمیشه کنترل کرد (تاجایی که من می دونم)
دستی باید کنترل کنید.
دلیل اینکه برنامه کار می کرد اینه که این آرایه ها فقط یه اشاره گر هستن
یعنی اگه شما یه ایندکس اشتباه بدی درنهایت یه نقطه اشتباه رو هم میخونی و مشکل اون موقعی ایجاد میشه که جای اشتباه رو هم بنویسیBiggrin
نقل قول: تا حالا کسی با ++C برای میکرو برنامه نوشته؟ میشه؟ نمیشه؟ چطوریه؟
بله توی همون اتمل استادیو میشه نوشت
مشکلی هم نداره
ولی یکسری از قابلیت ها کار نمی کنن مثلا ایجاد یک شی از یک کلاس (همش همون اول کار ایجاد میشن)
ولی شدیدا توصیه شده که اگه واقعا نیازی به قابلیت های خاص C++ ندارید ازش استفاده نکنید.
نقل قول: توی پروژه های سنگین، C اذیت میکنه... مخصوصا بابت متغیر های global و ...
چه اذیتی می کنه؟ بگو بزنیم تو سرش آدم بشهBiggrin
اگه برنامه رو خوب و تمیز بنویسید مشکلی پیش نمی یاد معمولا سوتی های برنامه نویس هست که پروژه های بزرگ رو با مشکل رو برو می کنه ولی درکل اگه مشکل از کامپایلر باشه C++ چیز خاصی رو فکر نکنم دوا کنه.

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

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۰۴-مهر-۱۳۹۲, ۰۱:۰۳:۴۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : salehjg, babyy
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #5
RE: TRY-CATCH-AVR GCC
نقل قول: دلیل اینکه برنامه کار می کرد اینه که این آرایه ها فقط یه اشاره گر هستن
یعنی اگه شما یه ایندکس اشتباه بدی درنهایت یه نقطه اشتباه رو هم میخونی و مشکل اون موقعی ایجاد میشه که جای اشتباه رو هم بنویسیBiggrin
مشابه این حالت هم یه بار برام رخ داد
یه متغیر static داخل تابعی داشتم...
مقدار دهی میشد
ولی بعد فراخوانی دوباره، متغیر مقداری نداشت!!!

که بعدا با گذاشتن یه خازن 4700 میکرو فاراد حل شد Biggrin Biggrin

نقل قول: بله توی همون اتمل استادیو میشه نوشت
مشکلی هم نداره
ولی یکسری از قابلیت ها کار نمی کنن مثلا ایجاد یک شی از یک کلاس (همش همون اول کار ایجاد میشن)
ولی شدیدا توصیه شده که اگه واقعا نیازی به قابلیت های خاص C++ ندارید ازش استفاده نکنید.
Amaze
Sad
نقل قول: چه اذیتی می کنه؟ بگو بزنیم تو سرش آدم بشهBiggrin
اگه برنامه رو خوب و تمیز بنویسید مشکلی پیش نمی یاد معمولا سوتی های برنامه نویس هست که پروژه های بزرگ رو با مشکل رو برو می کنه ولی درکل اگه مشکل از کامپایلر باشه C++ چیز خاصی رو فکر نکنم دوا کنه.
برنامه های سنگین متغیر های سراسری رو چطوری تعریف میکنن؟
من معمولا توی یه فایل جدای C تغریف میکنم، بعد داخل یه هدر فایل با extern پروتو تایپ اون متغیر ها رو می نویسم و احیانا اگر نیاز بود، مقدار دهی اولیه میکنم.. ....
منظورمو رسوندم؟
اگه نه مثال بزنم...

با این کار هر کجای توابعی که توی c.* های مجزا تعریف شدن، به اون متغیر ها نیاز داشتم، ازشون استفاده میکنم...
مشکلی که هست اینکه sram بطور نجومی مصرف میشه :)

راه بهتری هم هست؟
(با اشاره گر ها نمیشه هی آدرس به توابع فرستاد، اوضاع خیلی ناجور میشه)
(آخرین ویرایش در این ارسال: ۰۴-مهر-۱۳۹۲, ۰۲:۰۶:۳۳، توسط salehjg.)
۰۴-مهر-۱۳۹۲, ۰۱:۲۰:۰۳
وب سایت ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #6
RE: TRY-CATCH-AVR GCC
(۰۴-مهر-۱۳۹۲, ۰۱:۲۰:۰۳)salehjg نوشته است: برنامه های سنگین متغیر های سراسری رو چطوری تعریف میکنن؟
من معمولا توی یه فایل جدای C تغریف میکنم، بعد داخل یه هدر فایل با extern پروتو تایپ اون متغیر ها رو می نویسم و احیانا اگر نیاز بود، مقدار دهی اولیه میکنم.. ....
منظورمو رسوندم؟
اگه نه مثال بزنم...

با این کار هر کجای توابعی که توی c.* های مجزا تعریف شدن، به اون متغیر ها نیاز داشتم، ازشون استفاده میکنم...
مشکلی که هست اینکه sram بطور نجومی مصرف میشه :)

راه بهتری هم هست؟
(با اشاره گر ها نمیشه هی آدرس به توابع فرستاد، اوضاع خیلی ناجور میشه)
Amaze
Sad
Biggrin
---
خوب اگه واقعا قراره توی همه ی توابع استفاده بشن
خب دیگه میکرو هم محدودیت هایی داره دیگه معجزه که دیگه نمی شه کرد باید یه میکرو ی دیگه خریدBiggrin

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

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۰۴-مهر-۱۳۹۲, ۰۱:۳۷:۰۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : salehjg, babyy


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS