اطلاعیه

Collapse
No announcement yet.

کنترل موقعیت با انکودر

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

    کنترل موقعیت با انکودر

    سلام
    من می خوام تعداد پالس های انکودر رو بشمارم و بعد از محاسبه مسافت معین میکرو یه دستور رو اجرا کنه . خروجی انکودر رو به پایه T0 دادم . برنامم هم اینطوریه

    while (1)
    {
    PORTC.2=0 ;
    PORTC.1=1;
    TCCR0=0x06; // Start Timer T0 pin Falling Edge
    #asm("sei&quot // Global enable interrupts
    delay_ms(1000);
    COUNT = timer0_ov * 256 + TCNT0;
    for (j=0;j<=10;j++)
    { while(COUNT==s){
    #asm("cli" // Global disable interrupts
    PORTC.1=1;
    PORTC.2=1;
    printf("run the first step"
    TCCR0=0x00; //Stopt Timer0
    timer0_ov=0; //Prepare for next count
    TCNT0=0; //Clear Timer0
    }
    }
    };
    }
    ولی موتور بدون هیچ توقفی می چرخه!
    لطفا کمک کنید ، مشکل سخت افراریه یا نرم افزاری؟ :cry:

    #2
    پاسخ : کنترل موقعیت با انکودر

    while(COUNT==s)
    ممکنه count هیچ وقت دقیقا برابر s نشه . برای همین به جای شرط == از شرط =< استفاده کنید

    دیدگاه


      #3
      پاسخ : کنترل موقعیت با انکودر

      نوشته اصلی توسط sararaha
      سلام
      من می خوام تعداد پالس های انکودر رو بشمارم و بعد از محاسبه مسافت معین میکرو یه دستور رو اجرا کنه . خروجی انکودر رو به پایه T0 دادم . برنامم هم اینطوریه

      while (1)
      {
      PORTC.2=0 ;
      PORTC.1=1;
      TCCR0=0x06; // Start Timer T0 pin Falling Edge
      #asm("sei&quot // Global enable interrupts
      delay_ms(1000);
      COUNT = timer0_ov * 256 + TCNT0;
      for (j=0;j<=10;j++)
      { while(COUNT==s){
      #asm("cli" // Global disable interrupts
      PORTC.1=1;
      PORTC.2=1;
      printf("run the first step"
      TCCR0=0x00; //Stopt Timer0
      timer0_ov=0; //Prepare for next count
      TCNT0=0; //Clear Timer0
      }
      }
      };
      }
      ولی موتور بدون هیچ توقفی می چرخه!
      لطفا کمک کنید ، مشکل سخت افراریه یا نرم افزاری؟ :cry:

      چرا کسی جواب نمی ده؟

      دیدگاه


        #4
        پاسخ : کنترل موقعیت با انکودر

        نوشته اصلی توسط sararaha
        چرا کسی جواب نمی ده؟
        پس اینی که اون بالا نوشتیم سواله؟ حداقل امتحان میکردین!

        دیدگاه

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