ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11
  1. #1
    2015/08/27
    1,756
    1,049

    خطا در برنامه به زبان c

    سلام به همه دوستان
    یه برنامه نوشتم متاسفانه کدویژن یه ایراد گرفته از برنامه
    در واقع از تابع delay_us ایراد گرفته وقتی به جای u میزارم m دیگه خطا نمیده
    چرا اینطوریه ؟
    کسی میدونه داره چی میگه و باید چیکار کنم ؟

  2. #2
    2013/09/03
    1,984
    699

    پاسخ : خطا در برنامه به زبان c

    سلام
    ارور اینو میگه که باید ورودی تابع delay_us از جنس constant باشه ونمیتونه متغیر باشه...اگه تاخیر مد نظرتون همیشه مقداری ثابت داره به جای time مقدار عددیشو بذارید...اگه در طول برنامه مقدار time تغییر میکنه و قصد دارید که از تاخیر در حد میکرو ثانیه استفاده کنید میتونید به جای اون تابع از تابع delay_ms استفاده کنید و عدد ورودی رو اعشاری بدید...مثلا delay_ms(0.01) که معادل تاخیری تقریبا برابر با 100میکرو ثانیه هست...
    قانون سوم نیوتون میگه برای اینکه بخوای به چیزی برسی باید از یه چیزی دل بکنی...

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2015/08/27
    1,756
    1,049

    پاسخ : خطا در برنامه به زبان c

    نقل قول نوشته اصلی توسط Mahdi.Faani

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    ارور اینو میگه که باید ورودی تابع delay_us از جنس constant باشه ونمیتونه متغیر باشه...اگه تاخیر مد نظرتون همیشه مقداری ثابت داره به جای time مقدار عددیشو بذارید...اگه در طول برنامه مقدار time تغییر میکنه و قصد دارید که از تاخیر در حد میکرو ثانیه استفاده کنید میتونید به جای اون تابع از تابع delay_ms استفاده کنید و عدد ورودی رو اعشاری بدید...مثلا delay_ms(0.01) که معادل تاخیری تقریبا برابر با 100میکرو ثانیه هست...
    نمیدونستم که تو تابع delay_ms میشه از اعداد کمتر از 1 استفاده کرد
    1_ آیا از اعداد اعشاری هم میشه استفاده کرد ؟
    2_ چرا تو تابع delay_us نمیشه متغیر گذاشت ؟
    3_فکر کنم یه اشتباه هم انجام دادید اگه بنویسیم delay_ms(0.01) میشه 10 میکرو ثانیه نه 100 میکرو ثانیه

    با تشکر از راهنمایی شما
  4. #4
    2013/09/03
    1,984
    699

    پاسخ : خطا در برنامه به زبان c

    3-بله درست میگید...اشتباهی 0.01*1000 رو با 100 برابر گرفتم!

    خواهش میکنم...

    2-در واقع تابع delay_ms از delay_us به تعداد زیاد استفاده میکنه تا تاخیر مد نظر شما رو بسازه...وقتی پروژه رو کامپایل میکنید بر اساس کلاک میکروکنترلر اون عدد ثابت ورودی تابع میکروثانیه تعریف میشه و در طول کار میکروکنترلر از اون به عنوان بیس کاری تابع میلی ثانیه استفاده میکنه...در هر صورت شما واسه ایجاد تاخیر از delay_ms استفاده کنید و ورودیشو به دلخواه خودتون وارد کنید...

    1- با کدویژن کار نمیکنم ..ولی با کامپایلر AVR-GCC که کار میکنم ورودی delay_ms از نوع float تعریف شده...شما خودتون میتونید اینو واسه کدویژن تست کنید...
    قانون سوم نیوتون میگه برای اینکه بخوای به چیزی برسی باید از یه چیزی دل بکنی...

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  5. #5
    2012/11/11
    6
    0

    پاسخ : خطا در برنامه به زبان c

    سلام
    بصورت پیش فرض delay عدد اعشاری نمیگیره مگر ...
    میتونی از پنجره code navigator فایل delay.h رو باز کنی و دستور void delay_ms(unsigned int n); رو به void delay_us(float n); تغییر بدی. هر چند error نمیده اما فک نمیکنم تو روند برنامه تاثیر داشته باشه، چرا که به فایل سورس تابع دسترسی نداری.نیاز به تست داره.
  6. #6
    2014/05/29
    قدس
    1,229
    128

    پاسخ : خطا در برنامه به زبان c

    یه راه ساده
    یه تابع تعریف کن که کد زیر رو به تعداد مد نظرت تکرار کنه - به جای این که بیای اون کاری که کردی ...
    کد:
    delay_us(1);
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.
  7. #7
    2020/09/14
    15
    0

    پاسخ : خطا در برنامه به زبان c

    سلام دوستان من تازه کارم یکی میتونه در باره برنامه نویسی میکرو کنترلر به زبون خیلی ساده برام توضیح بده من زیاد از مفاهیمش سر در نمیارم که مثلا میخام به یه موتور برنامه بدم از چه کدهایی استفاده کنم...
  8. #8
    2017/06/13
    1,063
    530

    پاسخ : خطا در برنامه به زبان c

    نقل قول نوشته اصلی توسط Ali azimi13

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام دوستان من تازه کارم یکی میتونه در باره برنامه نویسی میکرو کنترلر به زبون خیلی ساده برام توضیح بده من زیاد از مفاهیمش سر در نمیارم که مثلا میخام به یه موتور برنامه بدم از چه کدهایی استفاده کنم...
    سلام
    سوالتون خیلی کلیه! ببینید برای کار با میکروکنترلر شما باید ترجیحا به زبان C تسلط کافی داشته باشید. ضمنا لازمه با مفاهیم پایه ای مدار و الکترونیک آشنا باشید. زبان C که بلد باشید، منابع برای یادگیری برنامه نویسی برای میکروکنترلرهای مختلف به زبان C زیاده. البته بعضا با زبان بیسیک هم کار میکنن که من اصلا پیشنهادش نمیدم چون محدودیت هایی ایجاد میکنه. اما زبان C با این که کمی سخت تره اما منعطف تره و محدودیت های کمتری داره.
    برای شروع کار با میکروکنترلرها هم من میکروکنترلر AVR و محیط برنامه نویسی اتمل استدیو رو پیشنهاد میدم. AVR سادس و از طرفی کدنویسی اون معمولا در سطح پایین سخت افزار انجام میشه به خاطر همین پایه شما رو برای برنامه نویسی میکروکنترلرهای دیگه قوی تر میکنه. البته توی ایران بیشتر از محیط کدویژن برای AVR استفاده میکنن که من شخصا به خاطر ایرادات فراوانی که داره ازش خوشم نمیاد. همچنین چند سالی میشه که بردهای آردوینو وارد کار شدن که زبون برنامه نویسی اونا ++C هستش و کدنویسی اون کمی سطح بالاتر و خیلی راحت تره که من برای شروع کار زیاد پیشنهادش نمیکنم؛ مگر برای کسایی که به صورت حرفه ای وارد کار میکروکنترلرها نمیخوان بشن.
    با همه این تفاسیری که گفتم، وقتی شما وارد کار با میکروکنترلرها بشید، کم کم و با پیشرفت در کار این سوالات ساده شما خود به خود رفع میشه و فرمان دادن به یک موتور ساده و... براتون راحت تر میشه. بهتره زیاد عجله نداشته باشید و سعی نکنید یک شبه ره 100 ساله طی کنید.
    امیدوارم جوابتونو گرفته باشید
  9. #9
    2016/05/25
    856
    680

    پاسخ : خطا در برنامه به زبان c

    نقل قول نوشته اصلی توسط Ali azimi13

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام دوستان من تازه کارم یکی میتونه در باره برنامه نویسی میکرو کنترلر به زبون خیلی ساده برام توضیح بده من زیاد از مفاهیمش سر در نمیارم که مثلا میخام به یه موتور برنامه بدم از چه کدهایی استفاده کنم...
    برای برنامه نویسی میکروکنترلرها avr باید از کامپایلر استفاده کنیم . هر کامپایلری با یک زبان خاص خودش کار می کند.
    مثلاً برای کد زدن در کامپایلر بسکام باید با زبان بیسیک کار کرد و در کامپایلر کد ویژن با زبان سی برنامه نویسی کرد.
    شروع یک پروژه که معمولاً راه اندازی یک ال ای دی چشمک زن می باشد در هر دو کامپایلر بسیار ساده است .قبل از اینکه شما بخواهید انتخاب کنید که با کدوم زبان برنامه بنویسید. توصیه می کنم شرایط کامپایلرها در نظر بگیرید مثلاً نظر شخصی خودم اینه که کامپایل کدویژن خیلی مزخرفه به خاطر اینکه هم برای شروع کار پیچیدگی هایی دارد و هم باک های زیادی دارد. اما اگر صرفاً بخواهید با زبان سی کد بزنید باید از کدویژن استفاده کنید این در حالیست که بسکام کامپایلریست بسیار راحت و باباک کمتر.
    اما بیسیک به نسبت زبان سی معایب فراوانی دارد. مثلاً میکروکنترلرهای arm فقط با زبان سی راه اندازی میشوند البته به این معنی نیست که اگر شما کدویژن بلد باشید میتوانید تمام آرمه آرا کد نویسی کنید. اما یادگیری زبان سی گسترده است مثلاً اگر فردای روز بخوای بریم و برای میکرو های آرم کد بزنی شما زبان سی را خوب بلدید یا اگر بخواهید با آردینو کار بکنید باز هم زبان سی دانش پایه می باشد .یا اینکه بخواهید برای نرم افزار های کامپیوتری و وب سایت غیره .
    بنابراین اگر هدف شما فقط میکروکنترلرهای avr باشد برید سراغ بسکام(بعید می*دونم که اهل پیشرفت نباشید). زبان سی خیلی خوبه ولی کدویژن جالب نیست.
    ایندو کامپایلر بسکام و کدویژن صرفاً در کشور ما خیلی استفاده می شوند بنابراین ناچاریم بر اساس منابع آنها یکی از این دو را انتخاب کنیم.
    یک راه حل دیگه؛
    اگر شما هم تمایل دارید ماژولار کار کنید و خیلی سریع تر از آنچه که فکر می کنید به نتیجه برسید صرف نظر از قضاوت بقیه بریدسمت آردینو.
    کامپایلر آردوینو یکی از بهترین و کاربر پسند ترین و امین ترین کامپایلر های دنیا است کافیست اردینورا نصب کنید منابع خیلی زیاد در آردوینو و گستردگی مهندسان برنامه نویس در سراسر دنیا باعث شده است که برای ۹۹% پروژه ها کتابخانه های آماده*ای مهیا شوند.
    عده*ای هم معتقدند آردینو اسباب بازی است اینها از الکترونیک و برنامه نویسی یک ابزاری برای پوزدادن می سازند بنابراین به این نظرات توجه نکنید فقط در همین حد بدانید که هردو کامپایلر کدویژن و بسکام انگشت کوچیکه آردوینو نخواهند شد.
    eshop-hodhod.ir
  10. #10
    2020/11/07
    8
    0

    پاسخ : خطا در برنامه به زبان c

    نقل قول نوشته اصلی توسط rezamajdi

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    در واقع از تابع delay_us ایراد گرفته وقتی به جای u میزارم m دیگه خطا نمیده
    نتیجه سرچ گوگل من (avr freaks.net):
    تابع delay_us فقط مقدار ثابت می گیره تا بتونه زمان رو دقیق حساب کنه و overhead نداشته باشه. این تابع تا زمان 65.535 میتونه تاخیر ایجاد کنه. راه حال ساده برای استفاده از این تابع اینه:

    void my_delay_us(int n) {
    while (n--) {
    delay_us(1);
    }
    }

    d=1000;
    my_delay_us(d);
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11

موضوعات مشابه

  1. پاسخ: 38
    آخرين نوشته: 2016/03/24, 21:09
  2. استفاده از يک زبان برنامه نويسي در زبان ديگر
    توسط mania59 در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 2
    آخرين نوشته: 2014/05/21, 13:26
  3. پاسخ: 0
    آخرين نوشته: 2014/03/07, 13:35
  4. تبديل برنامه BASICبه يك زبان برنامه همخوان با AVR
    توسط mohsenanaseri در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2008/06/17, 14:34
  5. پاسخ: 2
    آخرين نوشته: 2007/12/06, 23:47

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •