سلام بچه ها..... من به دوتا تایمر 16 بیتی نیاز داشتم ، برای همین هم رفتم سراغ atmega64 ...حالا یه مشکلی دارم....تایمر 1 این ic خروجیش رو میشه بصورت 16بیتی ازش گرفت (TCNT1) ولی تایمر شماره 3 خروجش رو به صورت 8 بیتی میده.... TCNT3L و TCNT3H ......حتما میشه که این دوتا رو بصورت 16 بیتی در آورد ولی یه سری دستور اضافه میشه که باعث ایجاد تاخیر و خطا تو برنامه میشه....چیکار کنم......؟ :cry2:
اطلاعیه
Collapse
No announcement yet.
تایمر 1 و 3 atmega64
Collapse
X
-
پاسخ : تایمر 1 و 3 atmega64
سلام آقا رضا....شما درست میگید در تایمر یک بایت بالا و پایین از هم جداست ولی اگه داخل فایل mega32.h برید میبینید که علاوه بر TCNT1L , TCNT1H یه رجیستر دیگه هم به نام TCNT1 برای دسترسی 16 بیت وجود داره که میتونید ازش استفاده کنید....من به صورت عملی هم ازش جواب گرفتم.....ولی برای تایمر 3 این رجیستر رو نداره..... :cry:
دیدگاه
-
پاسخ : تایمر 1 و 3 atmega64
نوشته اصلی توسط محسن قاسم پورسلام آقا رضا....شما درست میگید در تایمر یک بایت بالا و پایین از هم جداست ولی اگه داخل فایل mega32.h برید میبینید که علاوه بر TCNT1L , TCNT1H یه رجیستر دیگه هم به نام TCNT1 برای دسترسی 16 بیت وجود داره که میتونید ازش استفاده کنید....من به صورت عملی هم ازش جواب گرفتم.....ولی برای تایمر 3 این رجیستر رو نداره..... :cry:
کد:The TCNTn, OCRnA/B/C, and ICRn are 16-bit registers that can be accessed by the AVR CPU via the 8-bit data bus. The 16-bit register must be byte accessed using two read or write operations. Each 16-bit timer has a single 8-bit register for temporary storing of the high byte of the 16-bit access. The same Temporary Register is shared between all 16-bit registers within each 16-bit timer. Accessing the low byte triggers the 16-bit read or write operation. When the low byte of a 16-bit register is written by the CPU, the high byte stored in the Temporary Register, and the low byte written are both copied into the 16-bit register in the same clock cycle. When the low byte of a 16-bit register is read by the CPU, the high byte of the 16-bit register is copied into the Temporary Register in the same clock cycle as the low byte is read.
There is nothing so practical as a good theory. — Kurt Lewin, 1951
دیدگاه
-
پاسخ : تایمر 1 و 3 atmega64
نوشته اصلی توسط رضا سپاس یار
اون رو کامپایلر تعریف کرده و هیچ AVRی همچنین رجیستری نداره، از دیتاشیت ATmega64:
کد:The TCNTn, OCRnA/B/C, and ICRn are 16-bit registers that can be accessed by the AVR CPU via the 8-bit data bus. The 16-bit register must be byte accessed using two read or write operations. Each 16-bit timer has a single 8-bit register for temporary storing of the high byte of the 16-bit access. The same Temporary Register is shared between all 16-bit registers within each 16-bit timer. Accessing the low byte triggers the 16-bit read or write operation. When the low byte of a 16-bit register is written by the CPU, the high byte stored in the Temporary Register, and the low byte written are both copied into the 16-bit register in the same clock cycle. When the low byte of a 16-bit register is read by the CPU, the high byte of the 16-bit register is copied into the Temporary Register in the same clock cycle as the low byte is read.
دیدگاه
-
پاسخ : تایمر 1 و 3 atmega64
نوشته اصلی توسط فرزاد ثانیشما فقط به خاطر تایمر رفتی به مگا 64
میتونستی یه کاری هم بکنی .............. از آرایه ها استفاده کن
یادمه از یه تایمر 8 بیتی 10 تا تایمر مجزا با استفاده از آرایه ها جدا کرده بودم /..............همگی مستقل
دیدگاه
-
پاسخ : تایمر 1 و 3 atmega64
در کد ویژن برای تایمر 3 باید بصورت مجزا از طریق نوشتن در رجیستر های OCR3AL و OCR3AH اقدام کنید که موقع نوشتن حتما باید ابتدا بایت بالا (OCR3AH) و سپس بایت با ارزش کمتر (OCR3AL) را بنویسید و در غیر اینصورت عملیات مورد نظر به درستی انجام نخواهد شد.اوژن: به معنای افکننده و شکست دهنده است
دانایی، توانایی است-Knowledge is POWER
برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
دیدگاه
دیدگاه