امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با ادامه چرخه میکرو
نویسنده پیام
رسول غایب
بازنشسته
*****

ارسال‌ها: 2,458
موضوع‌ها: 237
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 15003
( 20196 تشکر در 5767 ارسال )
ارسال: #1
مشکل با ادامه چرخه میکرو
من برنامه ای به شکل زیرنوشته ام ومی خواستم که وقتی D.0 صفرشدآنگاه D.1 یک شود واگردوباره D.0 صفرشدآنگاه D.2 یک شود وچرخه همینطورادامه یابد(البته منظورم چرخه سوخت هسته ای نیستا!Wink )/D.0 رابایک مقاومت پول آپ 10کیلویی به مثبت وصل کرده ام/اما مشکلی که دارم اینه که دقیق کارنمیکنه(ازمیکرو جدید هم استفاده کرده ام)/فکرمی کنم که مشکل ازتاخیریه که برای صفر شدن پورتهای D.1/D.2 گذاشته ام(چونکه باتغییرآنها مدارهم کمی درست می شود)!
نظرشما چیه؟
کد php:
if(PIND.0==0){
 
PORTD.1=1;
 
delay_ms(1000);
 
PORTD.1=0;
 
delay_ms(500);
 };
 if(
PIND.0==0){
 
PORTD.2=1;
 
delay_ms(1000);
 
PORTD.2=0;
 
delay_ms(500);
 }; 
(آخرین ویرایش در این ارسال: ۱۲-فروردین-۱۳۸۹, ۲۲:۵۷:۳۸، توسط رسول.)
۱۲-فروردین-۱۳۸۹, ۲۲:۱۳:۵۸
ارسال‌ها
پاسخ
تشکر شده توسط : iman-63
iman-63 آفلاین
کاربر فعال بخش الکترونیک
***

ارسال‌ها: 365
موضوع‌ها: 71
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 62
( 332 تشکر در 148 ارسال )
ارسال: #2
RE: مشکل با ادامه چرخه میکرو
سلام دوست عزیز.
الگوریتم برنامه کلاً مشکل داره. چون این برنامه توی یه حلقه مدام در حال تکراره و هر وقت شرط برقرار بشه بسته به اینکه میکرو اول کدوم شرط رو ببینه، انجام میشه.
بهتره شما توی حلقه while(1) یه شرط بذاری که به ازای هربار اجرا بک شماره به صورت تک تک اضافه شود. و در شروط بعدی اگر عدد مورد نظر زوج بود شرط اول(که وقتی D.0 صفرشدآنگاه D.1 یک شود) و اگر فرد بود شرط دوم(0 صفرشدآنگاه D.2 یک شود) را اجرا کنه.
در ضمن DDR رو درست set کن و مقاومت pull up میکرو رو فعال کن.

اگه توی نوشتن برنامه مشکل داشتی بگو تا برات بنویسمش.
موفق باشی

تشکر لازم نیست !!!
(آخرین ویرایش در این ارسال: ۱۳-فروردین-۱۳۸۹, ۰۰:۴۴:۲۸، توسط iman-63.)
۱۳-فروردین-۱۳۸۹, ۰۰:۳۹:۰۸
ارسال‌ها
پاسخ
تشکر شده توسط : رسول, t3r!p3000
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #3
RE: مشکل با ادامه چرخه میکرو
الان برنامت با اون حرفهایی که میگی فرق داره !!!

الان اگه PIND.0 صفر باشه که PORTD.1 و PORTD.2 چشمک زن میشه !!!!!

طبق صحبت هات برنامت این میشه !! ( تحت بسکام )

کد php:
$regfile "m32def.dat"
$crystal 1000000
Ddrd 
Portd 3
Do
   
Debounce Pind.0 Ant Gosub
Loop

Ant
:
   
Toggle Portd.1 Toggle Portd.2
Return 
۱۳-فروردین-۱۳۸۹, ۰۱:۱۰:۳۷
ارسال‌ها
پاسخ
تشکر شده توسط : رسول, iman-63
رسول غایب
بازنشسته
*****

ارسال‌ها: 2,458
موضوع‌ها: 237
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 15003
( 20196 تشکر در 5767 ارسال )
ارسال: #4
RE: مشکل با ادامه چرخه میکرو
علی جون این برنامه بیسیک رو بامیکرو اجرا کردم ولی مشکلی که داره اینه که درابتدا بدون اینکه d.0 صفرشود d.1 روشن می شود!
منظورمن درکل اینه که بایک ورودی دوخروجی راکنترل کنم/یعنی اگر این ورودی رااولین بارصفر کردم یکی ازخروجیها یک شود واگردومین باراین ورودی صفرشد آنگاه خروجی دوم یک شود واگرسومین بار ورودی راصفر کردم دوباره خروجی اولی یک شود وهمینطورادامه یابد واگر مدت زیادی بین صفر شدن دوباره ورودی طول کشید برنامه قاطی نکند وبانظم کارش راانجام دهد!
درضمن تاخیر یادم رفت که بگم/هرکدام ازپورتهای خروجی که یک شده اند باید بعد از یک مدت تاخیر دوباره خودبه خود صفر شوند/
(آخرین ویرایش در این ارسال: ۱۳-فروردین-۱۳۸۹, ۰۲:۰۰:۰۸، توسط رسول.)
۱۳-فروردین-۱۳۸۹, ۰۱:۳۱:۴۵
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #5
RE: مشکل با ادامه چرخه میکرو
پس این برنامه باید درست باشه !!

کد php:
$regfile "m32def.dat"
$crystal 1000000
Ddrd 
Portd 1

Config Timer1 
Timer Prescale 8
Enable Interrupts 
Enable Timer1 On Timer1 t3rip3000

Dim B 
As Byte

Do
   
Debounce Pind.0 Ant Gosub
Loop

Ant
:
   If 
0 Then :
      
1
      Set Portd.1 
Reset Portd.2
   
Else :
      
0
      Reset Portd.1 
Set Portd.2
   End 
If
   
Start Timer1
Return

T3rip3000:
   
Reset Portd.1 Reset Portd.2
   Stop Timer1
Return 

هر خروجی نیم ثانیه فعال هستش و بعد از اون خاموش میشه !!!!

تو این مدت زمان ( همون نیم ثانیه ) اگر کلید زده شود خروجی فوق صفر شده و اون یکی دیگه یک میشه !!!

برای افزایش زمان نیم ثانیه پرسکالر تایمر یک رو عوض کنین !! ( و تایمر رو مقداردهی کنین )
۱۳-فروردین-۱۳۸۹, ۰۲:۰۳:۱۲
ارسال‌ها
پاسخ
تشکر شده توسط : رسول
رسول غایب
بازنشسته
*****

ارسال‌ها: 2,458
موضوع‌ها: 237
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 15003
( 20196 تشکر در 5767 ارسال )
ارسال: #6
RE: مشکل با ادامه چرخه میکرو
ممنون
یک مشکل کوچولو!
بازدن کلید خروجی اول روشن شده وبعد ازنیم ثانیه خاموش می شود ولی بادوباره زدن کلید خروجی دوم روشن شده همینطور باقی می ماند وخاموش نمی شود!
نقل قول: برای افزایش زمان نیم ثانیه پرسکالر تایمر یک رو عوض کنین !! ( و تایمر رو مقداردهی کنین )
چطوری؟
(آخرین ویرایش در این ارسال: ۱۳-فروردین-۱۳۸۹, ۰۲:۲۴:۱۳، توسط رسول.)
۱۳-فروردین-۱۳۸۹, ۰۲:۱۳:۴۱
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #7
RE: مشکل با ادامه چرخه میکرو
مطمئنی ؟؟؟!!

اینو تست کن :

کد php:
$regfile "m32def.dat"
$crystal 1000000
Ddrd 
Portd 1

Config Timer1 
Timer Prescale 8
Enable Interrupts 
Enable Timer1 On Timer1 t3rip3000

Dim B 
As Byte

Do
   
Debounce Pind.0 Ant Gosub
Loop

Ant
:
   
Timer1 Start Timer1
   
If 0 Then :
      
1
      Set Portd.1 
Reset Portd.2
   
Else :
      
0
      Reset Portd.1 
Set Portd.2
   End 
If
Return

T3rip3000:
   
Portd 1
   Stop Timer1
Return 
۱۳-فروردین-۱۳۸۹, ۰۲:۲۶:۱۷
ارسال‌ها
پاسخ
تشکر شده توسط : رسول, iman-63
رسول غایب
بازنشسته
*****

ارسال‌ها: 2,458
موضوع‌ها: 237
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 15003
( 20196 تشکر در 5767 ارسال )
ارسال: #8
RE: مشکل با ادامه چرخه میکرو
علی جون ببخش که بیخوابت کردم/حالا درست شد البته یک میکرو صفرکیلومتر استفاده کردم!
لطفا این تاخیرو هم یکم توضیح بدین/می خوام زمانشو افزایش بدم؟
۱۳-فروردین-۱۳۸۹, ۰۲:۳۹:۴۲
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #9
RE: مشکل با ادامه چرخه میکرو
برنامه اول چطور ؟
اون درست بودش ؟؟

تایمر دیگه !
یه زمان درست کردم با تایمر صفر حدود نیم ثانیه که بعد از نیم ثتنیه وقفه اش فعال میشه !
گفتم هر موقع کلید رو فشار دادی تایمر و فعال کن !
تایمر فعال میشه و وقتی تا اخر شمرد میره تو وقفش و خروجی ها رو خاموش کرده و خودش رو هم متوقف می کنه !

همین !!!
واسه توضیحات بیشتر این کتاب رو بخون : http://iranled.com/forum/showthread.php?tid=10869

واسه یه ثانیه اینو بنویس :

کد php:
$regfile "m32def.dat"
$crystal 1000000
Ddrd 
Portd 1

Config Timer1 
Timer Prescale 64
Enable Interrupts 
Enable Timer1 On Timer1 t3rip3000

Dim B 
As Byte

Do
   
Debounce Pind.0 Ant Gosub
Loop

Ant
:
   
Timer1 49911 Start Timer1
   
If 0 Then :
      
1
      Set Portd.1 
Reset Portd.2
   
Else :
      
0
      Reset Portd.1 
Set Portd.2
   End 
If
Return

T3rip3000:
   
Portd 1
   Stop Timer1
Return 
۱۳-فروردین-۱۳۸۹, ۰۲:۴۸:۵۷
ارسال‌ها
پاسخ
تشکر شده توسط : رسول, iman-63
رسول غایب
بازنشسته
*****

ارسال‌ها: 2,458
موضوع‌ها: 237
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 15003
( 20196 تشکر در 5767 ارسال )
ارسال: #10
RE: مشکل با ادامه چرخه میکرو
نقل قول: برنامه اول چطور ؟
اون درست بودش ؟؟
بله بامیکرو جدید دوباره برنامه اولی رو امتحان کردم ودرست کارکرد.
خیلی مخلصم.
۱۳-فروردین-۱۳۸۹, ۰۲:۵۴:۵۱
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در پاک کردن برنامه میکرو Salam7 1 398 ۲۹-بهمن-۱۴۰۰, ۲۲:۵۰:۴۴
آخرین ارسال: 1نفر
  مشکل دریافت متن از پورت سریال میکرو sajadcut 1 3,260 ۱۲-آبان-۱۳۹۵, ۲۲:۱۰:۲۳
آخرین ارسال: behzady
  تست میکرو saber.k 10 14,048 ۰۹-شهریور-۱۳۹۵, ۰۲:۰۹:۲۷
آخرین ارسال: yadulla fazel
  مشکل در هنگام بوت شدن ویندوز و اجرای دستورات میکرو unforgiven 3 3,732 ۳۱-مرداد-۱۳۹۵, ۱۹:۴۷:۲۵
آخرین ارسال: unforgiven
  مشکل ارتباط میکرو با ماژول sim908 saba7darya 15 8,907 ۳۰-اردیبهشت-۱۳۹۵, ۱۰:۱۸:۰۵
آخرین ارسال: sharin
  مشکل با فرکانس 16 مگ میکرو pontiac132 3 3,237 ۰۳-اسفند-۱۳۹۳, ۱۳:۲۸:۲۸
آخرین ارسال: pontiac132
  [فوری] مشکل اتصال میکرو به ماژول solmaz1992 4 4,075 ۳۰-دى-۱۳۹۳, ۲۱:۰۳:۳۳
آخرین ارسال: NAVID$KASHI
  [سوال] مشکل در پاور میکرو و گیرنده پارس( یا همون tsop 1738) HamidSay 36 17,578 ۱۱-دى-۱۳۹۳, ۰۳:۳۵:۳۵
آخرین ارسال: HamidSay
Smile [سوال] مشکل با وقفه خارجی(INT 0)میکرو علیدلی 15 14,973 ۱۰-دى-۱۳۹۳, ۲۲:۴۵:۱۵
آخرین ارسال: sharin
  [فوری] مشکل با برنامه کانتر میکرو milad15m 22 9,050 ۱۲-مهر-۱۳۹۳, ۱۷:۲۸:۰۸
آخرین ارسال: omid_phoenix

پرش به انجمن:


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

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