سلام بچه ها..... من به دوتا تایمر 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
اون رو کامپایلر تعریف کرده و هیچ AVRی همچنین رجیستری نداره، از دیتاشیت 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
به هر حال من ازش استفااه کردم...... :cry: .نوشته اصلی توسط رضا سپاس یار
اون رو کامپایلر تعریف کرده و هیچ 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
بله آقا فرزاد ...فقط به خاطر تایمر رفتم سراغ stmega64 ......برای اندازه گیری پهنای پالس های adxl202 نیاز به دوتا تایمر داشتم...... پالس ها فقط با یه کوچولو تاخییر نسبت به هم میان و نمیشه از یه تایمر برای دوتاشون استفاده کرد..... :cry2:نوشته اصلی توسط فرزاد ثانیشما فقط به خاطر تایمر رفتی به مگا 64
میتونستی یه کاری هم بکنی .............. از آرایه ها استفاده کن
یادمه از یه تایمر 8 بیتی 10 تا تایمر مجزا با استفاده از آرایه ها جدا کرده بودم /..............همگی مستقل
دیدگاه
-
پاسخ : تایمر 1 و 3 atmega64
در کد ویژن برای تایمر 3 باید بصورت مجزا از طریق نوشتن در رجیستر های OCR3AL و OCR3AH اقدام کنید که موقع نوشتن حتما باید ابتدا بایت بالا (OCR3AH) و سپس بایت با ارزش کمتر (OCR3AL) را بنویسید و در غیر اینصورت عملیات مورد نظر به درستی انجام نخواهد شد.اوژن: به معنای افکننده و شکست دهنده است
دانایی، توانایی است-Knowledge is POWER
برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
دیدگاه










دیدگاه