دوستان من اطمینان دارم که از پایه ADC1 نمونه نمیگیرد
من میخوام از طریق انتگرال گیری گسسته مقدار توان رو بدست بیارم
برای این کار طی دو پالس ADC از ولتاژ و جریان ورودی نمونه میگیرم و هر بار حاصلضرب آنها رو با هم جمع میکنم( با استفاده از دستور P=P+V*I )
و در نهایت بر مدت زمانی که نمونه گرفتم تقسیم میکنم
حالا به نظرتون برنامه نویسیم مسکلی داره؟؟؟؟!!!!!
لطفا راهنماییم کنید
دوستان یعنی تا آون حد سخته تغییر دادن ورودی ADC??????
سخت شاید باشه ولی نه تا حدی که هیچ کس نتونه جوابی بده
از این سایت بعیده؟؟؟؟؟؟ :NO: :NO: :NO: :NO: :NO: :NO:
زیرا در برنام شما (با فرض مقدار اولیه صفر برای b) ابتدا وارد شرط اول می شود و بعد از یک شدن b همیشه شرط دوم اجرا می شود.
اوژن: به معنای افکننده و شکست دهنده است
دانایی، توانایی است-Knowledge is POWER
برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
ممنون از راهنماییتون
ولی من که داخل if اول به b مقدار یک دادم تا اگه یه بار دیگه وارد روتین وقفه شد If دومی کار کنه!!!!
به نظرتون اشکال داره هنوز؟
میخوام اشکال کارم رو بدونم
ضمنا وقتی دستور رو به الس ایف تبدیل کردم این خطا رو از دستور الس ایف گرفت No matching If
باز هم ممنون
درباره نحوه عملکرد if و علت وارد شدن به بخش دوم در پست قبل توضیح دادم. در مورد خطای ایجاد شده هم یکبار برنامه را دقیق چک کنید که عبارتی مانند } یا ; از قلم نیافتاده باشد.
اوژن: به معنای افکننده و شکست دهنده است
دانایی، توانایی است-Knowledge is POWER
برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
ببینید استاد گرامی فکر کنم یه اشکال کوچک هست
به نظرتون وقتی دستور نمونه گیری جدید ( ADCSRA.6=1 ) رو در روتین وقفه مینویسم میکرو بقیه دستورهای زیر این دستور که نوشته شده رو اجرا میکنه؟؟؟
من یه بار امتحان کردم به محض اینکه دستور شروع نمونه گیری میدیم فورا از روتین خارج شده و نمونه جدید میگیره!!!!!!!!!!
به نظرتون وقتی دستور نمونه گیری جدید ( ADCSRA.6=1 ) رو در روتین وقفه مینویسم میکرو بقیه دستورهای زیر این دستور که نوشته شده رو اجرا میکنه؟؟؟
دستورات بعدی قطعا اجرا می شوند و یک کردن بیت مورد نظر در ADCSRA فقط به معنای فرمان start of conversion است و ارتباطی به روند اجرای برنامه ندارد.
اوژن: به معنای افکننده و شکست دهنده است
دانایی، توانایی است-Knowledge is POWER
برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
ممنون از توجهتون استاد گرامی
من در این برنامه همانطور که گفتم از ولتاژ و جریان ورودی نمونه میگیرم(البته طی دو پالس یه بار ولتاژ ویه بار جریان، یعنی همزمان نیست) تا با استفاده از دستور P=P+V*I مقدار توان رو از طریق انتگرال گیری گسسته بگیرم که قاعدتا نیازی به محاسبه ضریب توان نیست حالا من دوتا سوال دارم!!!
1- چگونه میتوانم همزمان از دو کانال نمنونه بگیرم؟
به عبارتی منظورم اینه که این برنامه با تاخیر یک پالس ساعت از جریان نمونه میگیره که این خودش باعث ضریب توان میشه، برای رفع این مشکل چه راه حلی پیشنهاد میکنید
2- این برنامه با شیفت فاز یکی از ورودی ها (Cos fi) مقدارش تغیر میکنه که نباید اینطوری باشه چون توان رو از طریق انتگرال گیری بدست آورده ام
با تشکر
دیدگاه