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

ارسال‌ها: 155
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 117
( 164 تشکر در 77 ارسال )
ارسال: #1
چرا مگا 16 هنگ میکند
سلام دوستان
با کمک شما تونستم یک ال سی دی رو با مگا 16 برنامه ریزی کنم. اون برنامه یه کانتر بسیا ساده است. در روند شمارش که Debounce از یک میکروسوییچ پالس رو میگیره بعد گذشت حدودا 20 30 شمارش کامل مشهود که مگا هنگ میکنه. چندتا کاراکتر نامفهوم کنار اعداد ظاهر میشه. یه مکث میکنه و دوباره همچی برمیگرده سرجاش.
اما چرا؟
چگونه قابل حل؟
لطفا بازم منو شامل محبت خودتون کنید.
ممنون
۰۴-مهر-۱۳۸۸, ۲۲:۳۳:۲۳
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

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

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #2
RE: چرا مگا 16 هنگ میکند
مهندس بيشترين علت هنگ كردن ولتاژ تغذيه هستش !
يه چند تا خازن بذار !

همينطور بالا بودن فركانس كار ميكرو و پايين بودن ولتاژ !

البته ممكنه از برنامه هم باشه كه بحثش جداست !
۰۴-مهر-۱۳۸۸, ۲۲:۴۵:۴۲
ارسال‌ها
پاسخ
تشکر شده توسط : saeidjan
modj.ir آفلاین
كاربر دو ستاره
**

ارسال‌ها: 233
موضوع‌ها: 0
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 1
( 547 تشکر در 230 ارسال )
ارسال: #3
RE: چرا مگا 16 هنگ میکند
حدس می زنم برنامه اتون ایرادی داشته باشه. کامپیور که نیست ویروس بگیره بعضی وقتها کمی کند بشه تصویر به هم بریزه بعد برگرده !!!!!!!!!!!!!!!!

ولتاژتون رو هم با یک ولتمتر چک کنین خارج از مقدار مجاز نباشه، میکرو کمی رنج ولتاژ زیادی داره اما LCD ای که استفاده می کنین ...

در ضمن اگر قطعه ای دارین که جریان زیادی می کشه و ممکنه وقت کار نویزی هم بندازه، اون رو چکی بکنین. اگر فقط 1 دکمه 1 LCD و یک میکرو هست، ایراد رو جای دیگه بگردین

۰۴-مهر-۱۳۸۸, ۲۳:۱۳:۵۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : saeidjan
saeidjan آفلاین
كاربر دو ستاره
**

ارسال‌ها: 155
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 117
( 164 تشکر در 77 ارسال )
ارسال: #4
RE: چرا مگا 16 هنگ میکند
خوشحالم که اینقدر دوستان نازنین هنوز هستند که انقدر سریع علم و تجربه خودشونو به آسانی در اختیار بقیه میزارن

(۰۴-مهر-۱۳۸۸, ۲۳:۱۳:۵۶)modj.ir نوشته است: حدس می زنم برنامه اتون ایرادی داشته باشه. کامپیور که نیست ویروس بگیره بعضی وقتها کمی کند بشه تصویر به هم بریزه بعد برگرده !!!!!!!!!!!!!!!!
برنامه بسیار ساده است. 4 تا دستور Debounce و 4 تا Subrootin

نقل قول: ولتاژتون رو هم با یک ولتمتر چک کنین خارج از مقدار مجاز نباشه، میکرو کمی رنج ولتاژ زیادی داره اما LCD ای که استفاده می کنین ...
من تغذیه رو از 5 ولت کیسم گرفتم که فکر کنم مطمئن ترین ولتاژ

نقل قول: در ضمن اگر قطعه ای دارین که جریان زیادی می کشه و ممکنه وقت کار نویزی هم بندازه، اون رو چکی بکنین. اگر فقط 1 دکمه 1 LCD و یک میکرو هست، ایراد رو جای دیگه بگردین
4 دکمه با 4 مقاومت 10 کیلو که به زمین وصل شدن و یه LCD ویه Atmega16
همین


دوست عزیزم سلام و تشکر
(۰۴-مهر-۱۳۸۸, ۲۲:۴۵:۴۲)t3r!p3000 نوشته است: مهندس بيشترين علت هنگ كردن ولتاژ تغذيه هستش !
يه چند تا خازن بذار !
ولتاژ و ظرفیت خازن و اصلا کجای مدار باید بزارم؟

نقل قول: همينطور بالا بودن فركانس كار ميكرو و پايين بودن ولتاژ !
فرکانس رو 1000000 تنظیم شده و ولتاژ 5 ولت از کیس گرفته شده

نقل قول: البته ممكنه از برنامه هم باشه كه بحثش جداست !
اینم سورس برنامه که جاهای بی اهمیتش رو حذف کردم.
در ضمن اگر ایراد فاحش تو کد نویسیم هست ممنون میشم بهم بگید.

کد php:
$regfile "m16def.dat" 
$crystal 1000000
$eeprom
'$sim

Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.2 , Db4 = Porta.7 , Db5 = Porta.6 , Db6 = Porta.5 , Db7 = Porta.4

Config Porta = Output
Config Portd = Input
Config Portc = Output
Config Debounce = 10

Dim I As Integer , Tim As Integer , Fl As Byte , Fl2 As Bit , K As Integer
Cursor Off

Res:
Lowerline
Cursor Off

Lcd "Press:"

Locate 2 , 13
Lcd "UP "

Readeeprom I , 0
If I < 0 Then
 I = 0
 Writeeeprom I , 0
 Waitms 40
End If

Locate 2 , 8
Lcd I
Delay

Counte:
Do
 Tim = 0
 If Fl = 0 Then
 If Fl2 = 0 Then
 Debounce Pind.0 , 1 , Upmic , Sub
 Else
 Debounce Pind.0 , 1 , Downmic , Sub
 End If
 Debounce Pind.1 , 1 , Resstor , Sub
 Debounce Pind.3 , 1 , Updowner , Sub
 End If
 Debounce Pind.2 , 1 , Hold , Sub
Loop

Upmic:
Readeeprom I , 0
I = I + 1
Writeeeprom I , 0
Waitms 40
Locate 2 , 8
Lcd I
While Pind.0 = 1
Wend
Goto Counte

Downmic:
مهم نبوده 
Goto Counte

Resstor:
Do
 Tim = Tim + 1
 If Pind.1 = 0 Then Return
Loop Until Tim > 32000
I = 0
Writeeeprom I , 0
Waitms 40
Goto Res

Updowner:
مهم نبوده
Return

Hold:
مهم نبوده
Return 




پست ويرايش شد :
علت : ناهماهنگي متن و نقل قول !
(آخرین ویرایش در این ارسال: ۰۵-مهر-۱۳۸۸, ۰۲:۳۴:۳۰، توسط t3r!p3000.)
۰۵-مهر-۱۳۸۸, ۰۰:۰۳:۳۰
ارسال‌ها
پاسخ
modj.ir آفلاین
كاربر دو ستاره
**

ارسال‌ها: 233
موضوع‌ها: 0
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 1
( 547 تشکر در 230 ارسال )
ارسال: #5
RE: چرا مگا 16 هنگ میکند
اگر باطری یا منبع تغذیه ای غیر از پاور دارین یک تستی بکنین بد نیست، من زیاد به پاور اعتقاد ندارم ( نظر کاملا شخص )
در مورد دستور دیبانس هم پیشنهاد میدم توی یک حلقه زده شدن یا نشدن دکمه رو بخونین، و بعد از اینکه دکمه رو خوندین اول یک waitms کوپیک بزارین ( جای دیبانس ) بعد به دکمه رسیدگی کنین. زیاد به این ریز دستورهای بیسکام هم اعتقاد ندارم !

با باطری یا چیزی مثل اون تست کنین، اگر باز هم ایرادی داد ، تا 9/7 بقیه گذینه ها رو تست می کنیم و امیدوارم به جوابی برسیم

۰۵-مهر-۱۳۸۸, ۰۰:۵۷:۳۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : saeidjan
maxn@morteza آفلاین
در حال پیشرفت
***

ارسال‌ها: 318
موضوع‌ها: 29
تاریخ عضویت: اردیبهشت ۱۳۸۸

تشکرها : 157
( 607 تشکر در 221 ارسال )
ارسال: #6
RE: چرا مگا 16 هنگ میکند
دوست عزیز پایه ریسیت با یه مقاومت 1کیلو به + زدین ؟

داده پردازان سریر سیستم
۰۵-مهر-۱۳۸۸, ۰۱:۰۴:۱۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : saeidjan
t3r!p3000 آفلاین
         
*****

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

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #7
RE: چرا مگا 16 هنگ میکند
مهندس سعيد جان خازن رو با برق ميكرو موازي كن !
يه 100 نانو شايد كافي باشه !
يه الكتروليتي هم بذاري خوبه !

در ضمن شرمنده پستت رو ويرايش كردم !
اينطوري خواناتر شده و بقيه راحت تر منظورتون رو مي گيرن !

اين دوخط برنامه رو حذف كن ! ( نگران نباش كاري نمي شه )
کد php:
$eeprom
$sim 

اين خط هم نيازي نيست :
کد php:
Config Porta Output 

به جاي اين دستور :
کد php:
While Pind.0 1
Wend 
مي توني از دستور bitwait استفاده كني !



مودجي عزيز اعتقادات جالبي داري !!!
پاور رو من خيلي قبول دارم !
دستورات خاص بسكام هم عالي هستن !
(آخرین ویرایش در این ارسال: ۰۵-مهر-۱۳۸۸, ۰۲:۴۵:۰۷، توسط t3r!p3000.)
۰۵-مهر-۱۳۸۸, ۰۲:۴۲:۵۶
ارسال‌ها
پاسخ
تشکر شده توسط : saeidjan, a.mehran
modj.ir آفلاین
كاربر دو ستاره
**

ارسال‌ها: 233
موضوع‌ها: 0
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 1
( 547 تشکر در 230 ارسال )
ارسال: #8
RE: چرا مگا 16 هنگ میکند
ج توو انگلیسی dj برای صحیح تر هست ! پس بخوانیم موج

پاور های الان آره اما 2 تا نکته هست، 1 اگر چیزی رو اشتباه ببندین، پاور تا اونجا که مدار منفجر بشه می تونه جریان بده ! 2- پاور ها قدیمی ولتاژ سالمی نداشتن و توو مادربورد مجدد رگوله می شدن !
در مورد دستورات خاص هم اینکه از نو دستور LCD رو با زبان ماشین بنویسین خیلی مسخره است ! اما اینکه جای
While Pind.0 = 1
Wend
یک bitwait بزاریم هم دیگه زیاده رویه. خیلی از دستورات ساده شده، داخل خودشون از یکی از امکانات سخت افزاری استفاده می کنن، یعنی ممکنه خودش از تایمری چیزی استفاده کنه، در حالی که ما هم توو برنامه همون تایمر رو استفاده کنیم. این مشکل الان وجود نداره، اکثرا رو بهینه کردن و تقریبا اصلاحات کلی هست، اما حفظ بعضی اصول بهتره !

۰۵-مهر-۱۳۸۸, ۰۳:۱۱:۳۲
وب سایت ارسال‌ها
پاسخ
saeidjan آفلاین
كاربر دو ستاره
**

ارسال‌ها: 155
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 117
( 164 تشکر در 77 ارسال )
ارسال: #9
RE: چرا مگا 16 هنگ میکند
(۰۵-مهر-۱۳۸۸, ۰۰:۵۷:۳۹)modj.ir نوشته است: اگر باطری یا منبع تغذیه ای غیر از پاور دارین یک تستی بکنین بد نیست، من زیاد به پاور اعتقاد ندارم ( نظر کاملا شخص )
بازم تشکر از پاسخت
من الان آداپتور موبایل که خروجیش رو زده 3.5 ولت اما با ولتمر 6 رو نشون میده رو وصل کردم به یه رگلاتور ولتاژ 7805 ال و یک مقاومت 10 اهم ولتاژم حدود 3.6شده البته اصلا سر در نیاوردم که چرا 5 نشد. به حرحال نوسانات برق تا 0.001 ثابت

نقل قول: در مورد دستور دیبانس هم پیشنهاد میدم توی یک حلقه زده شدن یا نشدن دکمه رو بخونین، و بعد از اینکه دکمه رو خوندین اول یک waitms کوپیک بزارین ( جای دیبانس ) بعد به دکمه رسیدگی کنین. زیاد به این ریز دستورهای بیسکام هم اعتقاد ندارم !
با باطری یا چیزی مثل اون تست کنین، اگر باز هم ایرادی داد ، تا 9/7 بقیه گذینه ها رو تست می کنیم و امیدوارم به جوابی برسیم
از باطری نمیتونم استفاده کنم چون قراره این برد کنتر پرس تو کارخونه صنعتی بشه که استفاده از باطری زیاد جایز نیست.
(آخرین ویرایش در این ارسال: ۰۵-مهر-۱۳۸۸, ۲۰:۳۶:۰۰، توسط t3r!p3000.)
۰۵-مهر-۱۳۸۸, ۱۰:۴۹:۲۳
ارسال‌ها
پاسخ
saeidjan آفلاین
كاربر دو ستاره
**

ارسال‌ها: 155
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 117
( 164 تشکر در 77 ارسال )
ارسال: #10
RE: چرا مگا 16 هنگ میکند
(۰۵-مهر-۱۳۸۸, ۰۲:۴۲:۵۶)t3r!p3000 نوشته است: مهندس سعيد جان خازن رو با برق ميكرو موازي كن !
يه 100 نانو شايد كافي باشه !
يه الكتروليتي هم بذاري خوبه !
ممنونم اما ولتاژ خازن مهم نیست؟

نقل قول: در ضمن شرمنده پستت رو ويرايش كردم !
اينطوري خواناتر شده و بقيه راحت تر منظورتون رو مي گيرن !
خواهش میکنم لطف کردی، بهرحال زحمت ما تازه کارا به عهده شماست تا راه بیفتیم و در آینده دست مبتدیای دیگرو بگیریم.

نقل قول: اين دوخط برنامه رو حذف كن ! ( نگران نباش كاري نمي شه )
کد php:
$eeprom
$sim 
خط اول به خاطر اینه که میخوام تو EEPROM ذخیره کنم چون احتمال قطع برق زیاد و نمیخوام اطلاعات از بین برهو بدون این احظار Bascom خطا میده

نقل قول: اين خط هم نيازي نيست :
کد php:
Config Porta Output 
خط دوم و این حط ریمارک شده بود که اشتباها ریمارکشو تو اینجا حذف کرده بودم

نقل قول: به جاي اين دستور :
کد php:
While Pind.0 1
Wend 
مي توني از دستور bitwait استفاده كني !
امتحان میکنم دوست عزیز
باز هم سپاسگذارم
(آخرین ویرایش در این ارسال: ۰۵-مهر-۱۳۸۸, ۲۰:۳۸:۰۴، توسط t3r!p3000.)
۰۵-مهر-۱۳۸۸, ۱۴:۰۸:۴۱
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

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

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #11
RE: چرا مگا 16 هنگ میکند
معمولا اكثر ولت متر ها اگه باتريشون ضعيف بشه ولتاژ رو بيشتر از حد واقعي نشون مي دن !


ولتاژ خازن تو همه مدارات معمولا دو برابر ولتاژ دوسرش انتخاب مي كنند !


در ضمن اينجا رو هم يه نگاه كن تا لازم نباشه من پست هاتو ويرايش كنم :
http://forum.iranled.com/misc.php?action=help


مهندس يه بار بدون دستور $eeprom تست كن و ببين بازم اين مشكل پيش مياد يا نه !
و اگه درست شد ( كه فكر مي كنم بيشترين مشكل برنامه از همين باشه ) متغيرهات رو تو eeprom بگير ( علاوه بر متغيرهاي اصليت ) و هر چند لحظه ديتا رو ذخيره كن !
۰۵-مهر-۱۳۸۸, ۲۰:۴۲:۳۳
ارسال‌ها
پاسخ
تشکر شده توسط : saeidjan


پرش به انجمن:


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

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