ايران ويج

نسخه‌ی کامل: مشکل با led چشمک زن ساده در atmega16
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام خدمت دوستان
من یه برنامه ساده نوشتم که led رو خاموش رو روشن میکنه
اینم کدش
کد:
$regfile = "m16def.dat"
Config Portc.0 = Output
   Do
      Toggle Portc.0
      Waitms 500
   Loop
End

این کد درست کار میکنه و مشکلی نداره تا وقتی که portc.0 یا portc.1 رو به عنوان خروجی در نظر بگیرم
اما وقتی portc.2 یا portc.3 و یا پورتهای دیگه رو به عنوان خروجی در نظر میگیرم مدار درست کار نمیکنه
یعنی led با یک نور ضعیف به صورت یکسره روشن میمونه و چشمک هم نمیزنه
در صورتی که با portc.0 و portc.1 با نور خوبی روشن میشه و چشمک هم میزنه
میخواستم ببینم که مشکل چیه که فقط با portc.0 و portc.1 درست کار میکنه و مابقی پورتها مشکل داره ؟
در صورتی که تو proteus به هر پورتی وصل میکنم درست کار میکنه اما تو مدار حقیقی مشکل داره
ممنون میشم از دوستان راهنمایی کنند که مشکل از کجاست
با تشکر
سلام دوست گرامی
مابقی پورت ها مشکل ندارن
اکثریت میکروکنترلرها از طریق jtag برنامه ریزی می شن
برای برنامه ریزی از این طریق 4 تا پایه میکرو درگیر این کار میشن
این 4 تا پایه در میکروهای 16 و 32 روی پورت C هستن . (portc.2 , portc.3 , portc.4 , portc.5)
برای اینکه از این پایه استفاده کنی باید این پایه ها رو غیرفعال کنی
برای غیر فعال کردن ، اول بگید با چه پروگرمری ، پروگرم می کنید ؟
usb ؟
پورت پرینتر ?
برای استفاده از پورت cفیوز بیت های jtag رو غیر فعال کنید
کد:
$Crystal=1000000
فرمان بالا روهم به برنامه اضافه کنید
سلام
من از stk500 که با usb کار میکنه ای سی مو پروگرم میکنم
چطوری باید jtag رو غیر فعال کنم ؟
با غیر فعال کردن jtag دفعات بعد که میخوام میکروکنترلر رو پروگرم کنم مشکلی پیش نمیاد ؟
وقتي پنجره ي مربوط به پروگرام اومد بالا ، در قسمت فيوز بيت ها ، jtag رو disable كنيد.
نه مشكلي پيش نمي ياد ،‌jtag بيشتر براي ديباگ كردن به كار مي ره ، پروگرام كردن از پروتكل SPI استفاده مي كنه .
jtag رو غیرفعال کردم و $Crystal=1000000 هم به کدم اضافه کردم ولی بازم نشد :(
شما با اين كد زير امتحان كن :

کد:
$regfile = "m16def.dat"
$crystal=1000000
Config Portc = Output
portc=0
Do
Toggle Portc.2
Waitms 500
Loop
End

فيوز بيت ها رو روي نوسان ساز داخلي با مقدار 1MHz تنظيم كن.
سر راه LED يه مقاومت بين 330 تا 1K بذار.
از اتصال درست ميكرو با برد بورد هم مطمئن شو ، با مولتي متر ولتاژ پايه بگير.
راستي بعد از تغيير فيوز بيت بايد 1 يا 2 تا دكمه اي كه سمت راست روشن مي شن رو بزني تا غير فعال شن ، ( با اين كار فيوز بيت ها رو اعمال مي كني. )
ممنون مشکل حل شد
مشکل این بود که باید چند بار پشت سر هم پروگرم میکردم تا jtag غیر فعال بشه
اما دلیلشو نمیدونم ولی جواب داد
دليلش اين بود كه فيوز بيت ها رو رايت نكرده بودي ، وقتي يك بار رايتشون كني ،‌سري بعدي نياز به تنظيم دوباره ندارن .
وقتي رايتشون نكني ، مثل اينه كه اصلا فيوز بيت ها رو تغيير ندادي ...
موفق باشي.