به نظر می رسد که شما عضو سایت نیستید و یا وارد نشده اید, امکان ارسال مطلب و دانلود فایل و همچنین دسترسی به انجمن هایی که فقط اعضا ثبت نام شده امکان دسترسی به آن را دارند از امتیازات ثبت نام در سایت میباشد.

لطفا از طریق این لینک برای ثبت نام اقدام نمایید.

    
You have (1) Unread PM; Click The Icon To Read It You have a new PM
جدیدترین موضوعات انجمنها


بازگشت   متارو > ميكروكنترلر > AVR

مشکل با کانتر 3 در mega64

AVR

پاسخ
 
LinkBack ابزارهای موضوع نحوه نمایش
قدیمی 08-02-2011, 07:28 PM   #1
Red face مشکل با کانتر 3 در mega64

کسی هست که توی کدویژن با کانتر 3 کار کرده باشه. من یه برنامه با کدویژن نوشتم اما به tcnt3 ارور می گیره که تعریف نشده. لازمه بگم که تنظیماتش رو توی کد ویزارد درست انجام دادم حتی توی کد هایی هم که خود کدویژن می نویسه از tcnt3h و tcnt3l هم استفاده کرده. در ضمن این مشکل رو فقط برای کانتر 3 میگیره و برای تایمر کانتر های 0و1و2 این ارور رو نمیده.
msadeghy.1371 آنلاین نیست.   پاسخ با نقل قول
قدیمی 08-02-2011, 09:18 PM   #2
پیش فرض پاسخ : مشکل با کانتر 3 در mega64

دوست عزیز مشکل یا نکته ی خاصی وجود ندارد.برای اینکه بهتر بشه کمک کرد اگه می تونی کدت را بزار...
__________________
معشوق من چنان لطیف است که خود را به بودن نیالوده است...
emami آنلاین نیست.   پاسخ با نقل قول
قدیمی 08-02-2011, 10:00 PM   #3
Unhappy پاسخ : مشکل با کانتر 3 در mega64

اینم کدش . برنامه اصلی پیچیده تره اما توی همین برنامه یه خطی هم همون مشکل رو دارم .ممنون میشم یه تستی بکنید.
#include <mega64.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here
PORTA=0x00;
DDRA=0xFF;
DDRB=0xFF;

PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;

PORTE=0x00;
DDRE=0x00;



PORTF=0x00;
DDRF=0x00;

PORTG=0x00;
DDRG=0x00;


ASSR=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;


TCCR1A=0x00;
TCCR1B=0x07;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;

TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;


TCCR3A=0x00;
TCCR3B=0x07;
TCNT3H=0x00;
TCNT3L=0x00;
ICR3H=0x00;
ICR3L=0x00;
OCR3AH=0x00;
OCR3AL=0x00;
OCR3BH=0x00;
OCR3BL=0x00;
OCR3CH=0x00;
OCR3CL=0x00;


EICRA=0x00;
EICRB=0x00;
EIMSK=0x00;

TIMSK=0x00;
ETIMSK=0x00;

ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

while (1)
{
TCNT3=3;

};
}
msadeghy.1371 آنلاین نیست.   پاسخ با نقل قول
قدیمی 08-02-2011, 11:07 PM   #4
پیش فرض پاسخ : مشکل با کانتر 3 در mega64

دوست عزیز رجیستر TCNT3 یک رجیستر 16 بیتی است.و باید ابتدا High byte آن را عدد دهی کنید و سپس Low Byte را. البته بعضی از کامپایلر ها این کار ار انجام میدن.ولی در بعضی موارد باید این کار را دستی انجام بدید.
هر وقت خواستید این رجیستر را عدد دهی کنید باید بنویسید.
TCNT3H=0x00;
TCNT3L=0x00;
__________________
معشوق من چنان لطیف است که خود را به بودن نیالوده است...
emami آنلاین نیست.   پاسخ با نقل قول
قدیمی 08-02-2011, 11:18 PM   #5
پیش فرض پاسخ : مشکل با کانتر 3 در mega64

ممنون از جوابتون . توی خماریش مونده بودم. اما رجیستر tcnt1 هم 16 بیتی است و این مشکل رو نداره.
msadeghy.1371 آنلاین نیست.   پاسخ با نقل قول
قدیمی 08-03-2011, 10:04 AM   #6
پیش فرض پاسخ : مشکل با کانتر 3 در mega64

خواهش می کنم..
خوب این بر می گرده به معماری AVR...
در برخی میکرو ها توسعه داده شده مثل 64و 128 کاربر فقط امکان دسترسی بیتی به برخی از رجیستر های حافظه را داره.
مثلا در همین قضیه آدرس رجیستر TCNT1 به ترتیب 0x2c,0x2d هستش.که در محدوده ی آدرس های قابل دسترس توسط کاربره ولی TCNT3 در این محدوده نیست.مثلا شما PORTG را هم قادر نیستی بیتی دستور بدی.
برای مشاهده ی این محدوده باید هدر آدرس 64 را باز کنی.اون رجیستر هایی که توسط دستور sfrb تعریف شدن اجازه ی دسترسی بیتی و بایتی دارند.اونایی که توسط sfrw تعریف شدن اجازه ی دسترسی بیتی و وردی(16 بیتی) را دارند....
__________________
معشوق من چنان لطیف است که خود را به بودن نیالوده است...
emami آنلاین نیست.   پاسخ با نقل قول
اين کاربران از emami به خاطر این مطلب مفید تشکر کرده اند
پاسخ

علاقه مندی ها (Bookmarks)

برچسب ها
mega64, کانتر

« موضوع قبلی | موضوع بعدی »
ابزارهای موضوع
نحوه نمایش

انتخاب سریع یک انجمن


اکنون ساعت 03:53 AM برپایه ساعت جهانی (GMT - گرینویچ) +4.5 می باشد.


تمامي حقوق مادي و معنوي اين مجموعه متعلق به شركت ربات گستران آپادانا مي‌باشد Persian Skin By : Vbskin