امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
کمک برای فعال کردن سه پین میکرو!!!
نویسنده پیام
alighr23 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 5
( 0 تشکر در 0 ارسال )
ارسال: #1
کمک برای فعال کردن سه پین میکرو!!!
سلام دوستان
من برای پروژه دانشگام با نرم افزار متلب یه سری پردازش روی عکس انجام دادم و داده هامو با پورت سریال به میکرو انتقال دادم.داده هام یه سری عدده که نشانگر زمان بر حسب میلی ثانیه است.من کلی تلاش کردم که سه تا پینه میکرو رو بر اساس زمان حساب شدشون روشن کنم و هر کدوم بعد از روشن شدن به مدت مثلا 500 میلی ثانیه روشن بمونه و خاموش شه.ولی نشد.واسه اینکارم از تایمر میکرو هم استفاده کردم ولی نتونستم جواب بگیرم.اخه من نیاز دارم که 3 تا پین میکرو همزمان فعال شن ولی میکرو به ترتیب اینکارو انجام میده.
[/align][/font]
۲۰-بهمن-۱۳۹۱, ۰۵:۱۱:۰۸
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #2
RE: کمک برای فعال کردن سه پین میکرو!!!
سلام.

خوب دستورات فعال شدن 3تا پين رو پشت سر هم بنويسيد يا مستقيم ريجستر مقدار دهي كنيد و بعد تاخير مثلا 500 ميلي ثانيه رو بذاريد. الان مشكلش چيه؟
كدهاتون رو بذاريد ، تا دوستان كمكتون كنن ...

۲۰-بهمن-۱۳۹۱, ۰۹:۵۶:۴۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, alighr23
alighr23 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 5
( 0 تشکر در 0 ارسال )
ارسال: #3
RE: کمک برای فعال کردن سه پین میکرو!!!
راستش بایستی هر پین در زمان خودش روشن شه که این زمانها ممکنه با هم تداخل هم داشته باشند.اخه میکرو میاد برنامه رو خط به خط اجرا میکنه.چه جور بگمSad
الان مشکلم اینه که میکرو بیاد توو زمانه 1 ثانیه پین 1 رو روشن کنه و 500 میلی ثانیم صبر کنه.حالا توو همین بین باید پین 2 رو هم روشن کنه.مثلا توو زمان 1200 میلی ثانیه و بازم 500 میلی ثانیه صبر کنه.چجور میکرو این دو تا کارو همزمان انجام بده؟
اخه میکرو تا اون خطه قبلو اجرا نکنه سراغ این نمیاد.و اوونوقت زمانی که پین 2 باید فعال شه دستخوش تغییر میشه!
۲۰-بهمن-۱۳۹۱, ۱۷:۱۲:۳۷
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #4
RE: کمک برای فعال کردن سه پین میکرو!!!
خوب پس ربطي به همزماني ندارهه ...
چند روش هست ، يكي استفاده از وقفه هست. اگر با دستور wait تاخيراتتون رو درست مي كنيد و وسط اين تاخير نياز به فعال كردن پايه ي ديگه داريد ، بايد از وقفه استفاده كنيد. اگر اطلاعات رو به صورت سريال دريافت مي كنيد ، كه حتما همينطور هست ، بايد وقفه ي سريال رو فعال كنيد.
وقفه اين امكان رو مي دهه كه از خط كه هستي ، بپري به يه بخشي از حافظه و دستورات مد نظرت رو اجرا كني و دوبارهه برگردي سر همون خطي كه بودي.

روش ديگه استفاده از تايمر هست. وقتي از وقفه ي تايمر استفاده كني ، خود تايمر بدون درگير كردن CPU زمان ها رو مي سازهه و از طريق وقفه CPU رو با خبر مي كنه ، در اين حين CPU هم دارهه دستورات رو اجرا مي كنه و معطل نمي شه ...

اما من همون روش اول رو توصيه مي كنم.
البته هنوز خيلي كارها مي توني كني ، مي توني اطلاعاتي رو كه به ميكرو مي فرستي هوشمندتر كني و كمي خلاقيت به خرج بدي ...

موفق باشيد.

(آخرین ویرایش در این ارسال: ۲۰-بهمن-۱۳۹۱, ۱۷:۴۴:۱۷، توسط sharin.)
۲۰-بهمن-۱۳۹۱, ۱۷:۴۰:۴۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : alighr23, aKaReZa75
alighr23 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 5
( 0 تشکر در 0 ارسال )
ارسال: #5
RE: کمک برای فعال کردن سه پین میکرو!!!
با تشکر از شما.روو توضیحاتتون کار میکنم تا ب جواب برسم
۲۱-بهمن-۱۳۹۱, ۰۲:۲۴:۴۲
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #6
RE: کمک برای فعال کردن سه پین میکرو!!!
یعنی شما میخوای از زمانی که اولین پین 1 میشه پین بعدی از همون زمان 1ثانیه بعدش پین 2 یک بشه و از زمان اولین پین 500میلی ثانیه پین 3 یک بشه؟

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۲۱-بهمن-۱۳۹۱, ۰۷:۳۵:۱۱
وب سایت ارسال‌ها
پاسخ
alighr23 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 5
( 0 تشکر در 0 ارسال )
ارسال: #7
RE: کمک برای فعال کردن سه پین میکرو!!!
نه.هر زمانی که هر کدوم از پینها روشن شدند.هر کردم بعد از 500 میلی ثانیه خاموش شن.ممکنه هر سه تا زمان به هم تداخل داشته باشن.من الان با وقفه سعی کردم اینکارو کنم.ولی ظاهرا با یک وقفه فقط میشه به یک زیر برنامه پرید!
راشتش الان واسه یه پین با تایمر 0 اینکارو کردم ولی چطوری با همون تایمر 0 واسه دو تا پینه دیگمم شروع کنه به شمارش؟
(داخله پرانتز عرض کنم من رشتم مکانیکه-اگه یه مقداری شوتی میدم نادیده بگیرید)
۲۱-بهمن-۱۳۹۱, ۱۹:۱۲:۲۲
ارسال‌ها
پاسخ
جلالی آفلاین
كاربر دو ستاره
**

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

تشکرها : 6
( 78 تشکر در 45 ارسال )
ارسال: #8
RE: کمک برای فعال کردن سه پین میکرو!!!
دوست عزیز این کار خیلی ساده است نه تنها سه پین میکرو بلکه همه پایه هارامی توانی کنترل کنی
البته بااستفاده وقفه تایمر
وقفه را طوری تنظیم می کنی که هر یک میلی ثانیه یکبار اجرا شود
سه تا متغیر در سطح گلوبال تعریف می کنیم
در داخل دستورات وقفه به هرکدام از متغییرها بشرطی که از پانصد کمتر باشند یکی اضافه می کنی
$regfile = "m8def.dat"
$crystal = 11059200
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Dim A As Integer
Dim B As Integer
Dim C As Integer



دستورات وقفه
if A<500 then A=A+1
if B<500 then B=B+1
if C<500 then C=C+1
If A < 500 Then Set Portb.0
If B < 500 Then Set Portb.1
If C < 500 Then Set Portb.2

If A >= 500 Then ReSet Portb.0
If B >= 500 Then ReSet Portb.1
If C >= 500 Then ReSet Portb.2

حالا اگر در قسمتی از برنامه هر کدام از متغیر ها را برابر صفر کنید پین مربوطه یک شده وبعد از پانصد میلی ثانیه صفر خواهد شد
در ضمن چون بنده با سی برنامه می نویسم احتمال کمی دارد که نحوه نوشتن دستورات اشتباه باشد
۲۱-بهمن-۱۳۹۱, ۲۳:۱۰:۳۲
ارسال‌ها
پاسخ
تشکر شده توسط : alighr23
alighr23 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 5
( 0 تشکر در 0 ارسال )
ارسال: #9
RE: کمک برای فعال کردن سه پین میکرو!!!
سلام
یکمی هنگ کردم.میشه بیشتر توضیح بدی؟
۲۲-بهمن-۱۳۹۱, ۰۱:۲۳:۰۷
ارسال‌ها
پاسخ
alighr23 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 5
( 0 تشکر در 0 ارسال )
ارسال: #10
RE: کمک برای فعال کردن سه پین میکرو!!!
$regfile = "m8def.dat"
$crystal = 11059200
$baud = 9600
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.1 , Rs = Portc.0
Cursor Off : Cls
Config Pinb.1 = Output

Dim A As Integer


Config Timer0 = Timer , Prescale = 64
Enable Interrupts
Enable Ovf0
On Ovf0 Q
Do
A = 0

Locate 1 , 1
Lcd "t:" ; A
Loop
End
Q:
Incr A
If A > 500 Then A = A + 1
If A < 500 Then Set Portb.1
If A >= 500 Then Reset Portb.1

Return
اینو نوشتم ولی فقط پین b.1 روشن میشه.خاموش نمیشه!
۲۲-بهمن-۱۳۹۱, ۰۲:۲۷:۲۱
ارسال‌ها
پاسخ
alighr23 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 2
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 5
( 0 تشکر در 0 ارسال )
ارسال: #11
RE: کمک برای فعال کردن سه پین میکرو!!!
هم اکنون نیازمند یاری گرمتان هستیم...
۲۲-بهمن-۱۳۹۱, ۱۹:۴۸:۵۰
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در پاک کردن برنامه میکرو Salam7 1 398 ۲۹-بهمن-۱۴۰۰, ۲۲:۵۰:۴۴
آخرین ارسال: 1نفر
  حذف نویز ADC میکرو برای اعمال ولتاژ 20 میلی ولت ؟ mega16 18 3,428 ۳۱-خرداد-۱۳۹۹, ۱۱:۱۵:۳۴
آخرین ارسال: a.mehran
  معرفی یک سنسور جریان برای اتصال به میکرو ؟ mega16 6 1,738 ۲۷-اردیبهشت-۱۳۹۹, ۱۷:۳۸:۳۲
آخرین ارسال: Ambassador
  هنگ کردن میکرو در ارتباط سریال nex 1 2,890 ۰۴-آبان-۱۳۹۵, ۲۰:۵۶:۵۹
آخرین ارسال: علی محد شریفی
  تست میکرو saber.k 10 14,048 ۰۹-شهریور-۱۳۹۵, ۰۲:۰۹:۲۷
آخرین ارسال: yadulla fazel
  کار نکردن میکرو بعد از پروگرام کردن آن namesis 26 21,412 ۲۹-اردیبهشت-۱۳۹۵, ۲۳:۲۹:۴۸
آخرین ارسال: behzadtar
  اتصالات برای روشن کردن میکرو poiut 1 2,147 ۱۸-آذر-۱۳۹۴, ۱۷:۵۵:۲۹
آخرین ارسال: sharin
  کمک در پروگرام کردن میکرو sara90 24 19,183 ۲۴-مرداد-۱۳۹۴, ۱۰:۳۷:۲۲
آخرین ارسال: محمد صادق
  درایو کردن ماسفت با میکرو armin_gera 9 9,201 ۱۷-تير-۱۳۹۴, ۱۶:۲۸:۰۹
آخرین ارسال: armin_gera
  کد کردن دیتا برای ارسال بیسیم؟ cortex-m3 3 3,128 ۲۴-خرداد-۱۳۹۴, ۰۹:۲۲:۵۹
آخرین ارسال: student-p

پرش به انجمن:


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

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