اطلاعیه

Collapse
No announcement yet.

سوال در مورد تایمرها در میکرو atmega16 و زبان code vision

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال در مورد تایمرها در میکرو atmega16 و زبان code vision

    سلام
    همگی خسته نباشید
    داشتم دنبال اطلاعاتی درباره تایمر میگشتم که با سایت شما آشنا شدم.
    چند تا سوال دارم...من میخوام با میکرو ATMEGA16 و با استفاده از زبان Code vision اینکارا رو انجام بدم
    یکی اینکه باید با استفاده از تایمر1 برنامه ای بنویسم که یک LED متصل به پایه PC0 هر ثانیه یکبار چشمک بزنه راستش خیلی تایمر بلد نیستم اما تا اونجایی که میدونم تایمر 1 فقط روی پین های D4 و D5 عمل میکنه و این محدودیت پین رو نمیدونم چکار کنم؟ آیا میشه همه کارو روی یه میکرو روی همون پایه D4 یا D5 انجام بدم بعدش این میکرومو با استفاده از ارتباط سریال USART متصل کنم به یه میکرو دیگه و اینو بفرستم روی پایه PC0 اون یکی میکرو؟اصلا چنین کاری درسته؟ یا روی همون یک میکرو روی پایه PC0 میشه این کارو انجام داد؟

    یه سوال دیگه هم اینکه میخوام هم زمان یه موج مربعی 1khz روی PA0 و یه موج مربعی 3khz روی PA1 تولید کنم با فرکانس کریستال داخلی 8mhz ؟
    راستش اینو تا حدودی فکرکردم و به این نتیجه رسیدم که باید با تایمر 0 و 2 نوشته بشه اما بازم محدودیت پین دارم یعنی روی پین A هیچ تایمری نیست! و یه چیز دیگه که نمیتونم بفهمم اینکه چطور میشه از روی فرکانس مثلا 1khz دوره تناوب را بدست آورد؟
    اگرممکنه یکم در مورد مدهای کاری تایمرها بگید من اصلا نمیدونم از کدام مد باید استفاده کنم!
    لطفا کمک کنید وقت زیادی هم ندارم
    ممنون

    #2
    پاسخ : سوال در مورد تایمرها در میکرو atmega16 و زبان code vision

    نوشته اصلی توسط karimip
    سلام
    همگی خسته نباشید
    داشتم دنبال اطلاعاتی درباره تایمر میگشتم که با سایت شما آشنا شدم.
    چند تا سوال دارم...من میخوام با میکرو ATMEGA16 و با استفاده از زبان Code vision اینکارا رو انجام بدم
    یکی اینکه باید با استفاده از تایمر1 برنامه ای بنویسم که یک LED متصل به پایه PC0 هر ثانیه یکبار چشمک بزنه راستش خیلی تایمر بلد نیستم اما تا اونجایی که میدونم تایمر 1 فقط روی پین های D4 و D5 عمل میکنه و این محدودیت پین رو نمیدونم چکار کنم؟ آیا میشه همه کارو روی یه میکرو روی همون پایه D4 یا D5 انجام بدم بعدش این میکرومو با استفاده از ارتباط سریال USART متصل کنم به یه میکرو دیگه و اینو بفرستم روی پایه PC0 اون یکی میکرو؟اصلا چنین کاری درسته؟ یا روی همون یک میکرو روی پایه PC0 میشه این کارو انجام داد؟
    دوست عزیز برای کاری که میخواهید انجام بدید کافیه از وقفه تایمر استفاده کنید وتایمرتون را با استفاده از فرکانس اسیلاتورتون طوری تنظیم کنید که هر یک ثانیه براتون وقفه تایمر رخ بدهد اونوقت در زیربرنامه وقفه تایمر میتونید اعلام کنید پین pc0 یک بشود تا led متصل به ان روشن بشود .

    دیدگاه


      #3
      پاسخ : سوال در مورد تایمرها در میکرو atmega16 و زبان code vision

      سلام
      ممنون از پاسختون اما صورت مسئله فقط به من گفته هر 1 ثانیه led روشن بشه
      نمیدونم فرکانس اسیلاتور را از کجا باید بدست بیارم؟
      این کاریکه شما گفتی من کردم اما اصلا پایه PC0 من توی پروتئوس قرمز یعنی یک نمیشه و آبی میمونه
      وقتی برنامه رو میزیم روی پروتئوس فقط پایه های PD4 و PD5 م کار میکنه
      من راستش نمیدونم چه مقادیری باید روی OCR1A و OCR1B بریزم
      تایمر تا چند باید بشمره تا 653565 ؟
      و حتی از زیربرنامه وقفه هم interrupt توی کدویژن error میگیره بخاطر اسم interrupt
      چطوری باید interrupt رو صدا بزنم ؟
      ای خداااااااااااااااااااااااااااا :cry:

      دیدگاه

      لطفا صبر کنید...
      X