اطلاعیه

Collapse
No announcement yet.

مشکل اتصال adxl202 به atmega64

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

    مشکل اتصال adxl202 به atmega64

    سلام دوستان.....من با atmega32 تونستم عرض پالس رو اندازه بگیرم و دیوتی سایکل رو حساب کنم.....هم با پروتئوس و هم از نظر سخت افزاری تستش کردم و جواب داد...ولی چون دوتا تایمر 16 بیتی نیاز دارم رفتن سراغ atmega 64 و همون برنامه رو براش نوشتم ولی نتونستم تو پروتئوس ازش جواب بگیرم......الان یک ماه که دارم باهاش سرو وکله میزنم ولی جواب نمیده.....من برای اینکار یه پایه اینتراپت رو دادم به ورودی پالس و با روشن و خاموش کردن تایمر یک زمان کل و زمان خاموش بودن رو اندازه گرفتم دقیقا همون کاری که برای atmega32 کردم با این تفاوت که رجیستر اینتراپتش اسمش فرق میکنه...اگه میشه یه نگاهی به برنامم بندازین....خیلی بهش نیاز دارم...ممنون.... :cry2:

    // External Interrupt 0 service routine
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    if(end==0){
    if(flag==0){
    TCNT1=0x00;
    TCCR1A=0x00;
    TCCR1B=0x01;
    flag=1;
    }else{
    TCCR1A=0x00;
    TCCR1B=0x00;
    total=TCNT1;
    TCNT1=0x00;
    TCCR1A=0x00;
    TCCR1B=0x01;
    EICRA=0x02;
    up=1;
    ok=1;
    end=1;
    }
    };

    if(ok==1){
    TCCR1A=0x00;
    TCCR1B=0x00;
    tempon=TCNT1;
    sumtempon+=tempon;
    count++;

    if(up==1){
    EICRA=0x03;
    up=0;
    }else{
    TCNT1=0x00;
    TCCR1A=0x00;
    TCCR1B=0x01;
    EICRA=0x02;
    up=1;
    }

    }
    }


    #2
    پاسخ : مشکل اتصال adxl202 به atmega64

    یعنی واقا کسی نیست که یه کمک کوچولو به بکنه........؟ :cry2:

    دیدگاه


      #3
      پاسخ : مشکل اتصال adxl202 به atmega64

      بیینید شما باید Capture عرض پالس رو اندازه بگیرید، این فایل رو ببینید: www.atmel.com/dyn/resources/prod_documents/doc8014.pdf یکی از مثال هایی که برای کاربرد Capture زده همین سنسور شماست.
      There is nothing so practical as a good theory. — Kurt Lewin, 1951

      دیدگاه


        #4
        پاسخ : مشکل اتصال adxl202 به atmega64

        ممنون از جوابتون......ولی من خیلی راحت با برنامه بالا تو atmega32 جواب گرفتم.....اصلا شک دارم که برنامه بالا مشکلی داشته باشه.....چون کاری که میخوام انجام بدم دقیقا مثل قبلیه...... ببینید من اول اینتراپت رو با لبه بالا رونده فعال میکنم بعدش وقتی اینتراپت اومد تایمر رو روشن میکنم و با اینتراپت بعدی تایمر رو خاموش میکنم و مقدار tcnt1 رو ذخیره می کنم ...این میشه کل زمان و این کار رو یک بار بیشتر انجام نمیدم...بعد وقتی اینتراپت بعدی اومد تایمر رو دوبار روشن میکنم و همون موقع اینتر اپت رو به لبه پایین رونده فعال میکنم..با اومدن اینتراپت بعدی تایمر رو خاموش و مقدار tcnt1 رو تو یه متغییر دیگه ذخیره میکنم...این هم میشه زمان روشن بودن....با تقسیم این دوتا دیوتی سایکل رو حساب میکنم..... :cry2: به نظر شما اینکار اشتباهه....؟

        دیدگاه


          #5
          پاسخ : مشکل اتصال adxl202 به atmega64

          سلام
          یه چیزی رو هم بگم.حتما احتیاج نیست از اینتراپت استفاده کنی.میتونی از هر پین دیگه ایی استفاده کنی اما یک مدار تشخیص لبه در ورودی اون پین قرار بدی.
          هرچی بازه های زمانی رو کوچکتر کنی دقت بیشتری خواهی داشت.با همه اینها برای دقت بیشتر میانگین بگیر.
          این رو هم بگم این سنسور در قسمتهای مختلف کره زمین (بخاطر ارتفع از سطح دریا) دقتهای متفاوتی خواهد داشت.
          جای رو که میخوای ازش استفاده کنی باید ثابت باشه وگه نه دقتت بهم میریزه.
          مگه اینکه یک فرمولی بدست بیاری که بتونی در جاهای مختلف کنترلش کنی.
          چون این سنسور با گرویتی زمین در ارتباط هست و نسبت به اون عمل میکنه
          خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

          دیدگاه


            #6
            پاسخ : مشکل اتصال adxl202 به atmega64

            حمید آقا ممنون از راهنماییتون.....فقط میشه بگید ایراد برنامه بالا چیه و چرا با atmeg64 جواب نمیده ولی atmega32 جواب میده....؟ ممکنه به خاطر پروتئوس باشه......؟

            دیدگاه


              #7
              پاسخ : مشکل اتصال adxl202 به atmega64

              اصلا پرتئوس رو بطور کامل فراموش کن چون یکبار این برنامه داشت باعث بیچارگی من میشد.
              فقط به درد این میخوره که روشن شدن LED رو ببینی.
              اینم بگم که َATMega64 و ATMega128 اصلا به راحتی ATMega8,16,32 نیست.خیلی اذیت کن هست.وخیلی حساس.
              مثلا 3 تا اینتراپت مختلف یکبار جواب میده یکبار نمیده.
              من خیلی اذیت شدم سر ATMega128
              از 2 تا ATMega32 فرم SMD استفاده کنی به نظر من بهتر از ATMega128,64 هست
              خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

              دیدگاه


                #8
                پاسخ : مشکل اتصال adxl202 به atmega64

                ممنون که جواب دادید........ فقط چرا smd ....؟ دلیل خاصی داره.....؟ بعدش دو تا atmega 32 رو چطوری بهم لینک کنم.....؟spi یا rs232 .....؟

                دیدگاه


                  #9
                  پاسخ : مشکل اتصال adxl202 به atmega64

                  SMD برای اینکه جمع و جور وکوچیک بشه.هیچ فرقی نداره DIP بزار.
                  هر جوری دوست داری میتونی ارتباط بدی.
                  اصلا علت اینکه از ATMega64 میخوای استفاده کنی چیه؟
                  خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                  دیدگاه


                    #10
                    پاسخ : مشکل اتصال adxl202 به atmega64

                    بازم ممنون که جواب دادید..... :wow: چون برای adxl202 به دوتا تایمر 16 بیتی نیاز دارم..... مگه جور دیگه هم میشه راش انداخت......؟

                    دیدگاه


                      #11
                      پاسخ : مشکل اتصال adxl202 به atmega64

                      دوستان اگر کسی توانسته با سنسور adxl330 کار کنه و به طور کامل با کارکرد اون در جهت زاویه سنجی آشنایی داره لطفا به من ایمیل بده که یه پروژه خوب براش سراغ دارم
                      gladiator200350@yahoo.com
                      بدنم را بدون مومیایی و تابوت به خاک سپارید تا اجزا بدنم ذرات خاک ایران را تشکیل دهد

                      دیدگاه

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