Skip to main content

For example... unsigned long long servo_timing[2]={0,0}; int A_data=0; void servo_ini() { Wire.beginTransmission(0x20); Wire.write(0x00); // address bank A Wire.write(0x00); Wire.endTransmission(); } void servo_set(unsigned int servo_tim,bool servo_mod){ if(servo_mod==1){ servo_tim=map(servo_tim,0,180,200,1900); } //if(servo_vector<=0)/lcd_tim=650;/servo_tim=220;/0 //if(servo_vector==1)/lcd_tim=1400;/servo_tim=1000;/90 //if(servo_vector>=2)/lcd_tim=2255;/servo_tim=1870;/180 if(micros()-servo_timing[0]>servo_tim) { A_data&=0b11111110; Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write(A_data); Wire.endTransmission(); if(micros()-servo_timing[1]>(20000-servo_tim)) { A_data|=0b00000001; Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write(A_data); Wire.endTransmission(); servo_timing[0]=micros(); servo_timing[1]=micros(); }

} }

unsigned long long servo_timing[2]={0,0};
int A_data=0;
void servo_ini()
{
  Wire.beginTransmission(0x20);
    Wire.write(0x00);      // address bank A
    Wire.write(0x00);
    Wire.endTransmission();
}
void servo_set(unsigned int servo_tim,bool servo_mod){
   if(servo_mod==1){
    servo_tim=map(servo_tim,0,180,200,1900);
   }
   //if(servo_vector<=0)/*lcd_tim=650;*/servo_tim=220;/0
   //if(servo_vector==1)/*lcd_tim=1400;*/servo_tim=1000;/90
   //if(servo_vector>=2)/*lcd_tim=2255;*/servo_tim=1870;/180
   if(micros()-servo_timing[0]>servo_tim)
   {
     A_data&=0b11111110;
     Wire.beginTransmission(0x20);
     Wire.write(0x12);      // address bank A
     Wire.write(A_data);
     Wire.endTransmission();
     if(micros()-servo_timing[1]>(20000-servo_tim))
     {
       A_data|=0b00000001;
       Wire.beginTransmission(0x20);
       Wire.write(0x12);      // address bank A
       Wire.write(A_data);
       Wire.endTransmission();
       servo_timing[0]=micros();
       servo_timing[1]=micros();
     }
   
  }
}

For example... unsigned long long servo_timing[2]={0,0}; int A_data=0; void servo_ini() { Wire.beginTransmission(0x20); Wire.write(0x00); // address bank A Wire.write(0x00); Wire.endTransmission(); } void servo_set(unsigned int servo_tim,bool servo_mod){ if(servo_mod==1){ servo_tim=map(servo_tim,0,180,200,1900); } //if(servo_vector<=0)/lcd_tim=650;/servo_tim=220;/0 //if(servo_vector==1)/lcd_tim=1400;/servo_tim=1000;/90 //if(servo_vector>=2)/lcd_tim=2255;/servo_tim=1870;/180 if(micros()-servo_timing[0]>servo_tim) { A_data&=0b11111110; Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write(A_data); Wire.endTransmission(); if(micros()-servo_timing[1]>(20000-servo_tim)) { A_data|=0b00000001; Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write(A_data); Wire.endTransmission(); servo_timing[0]=micros(); servo_timing[1]=micros(); }

} }

For example...

unsigned long long servo_timing[2]={0,0};
int A_data=0;
void servo_ini()
{
  Wire.beginTransmission(0x20);
    Wire.write(0x00);      // address bank A
    Wire.write(0x00);
    Wire.endTransmission();
}
void servo_set(unsigned int servo_tim,bool servo_mod){
   if(servo_mod==1){
    servo_tim=map(servo_tim,0,180,200,1900);
   }
   //if(servo_vector<=0)/*lcd_tim=650;*/servo_tim=220;/0
   //if(servo_vector==1)/*lcd_tim=1400;*/servo_tim=1000;/90
   //if(servo_vector>=2)/*lcd_tim=2255;*/servo_tim=1870;/180
   if(micros()-servo_timing[0]>servo_tim)
   {
     A_data&=0b11111110;
     Wire.beginTransmission(0x20);
     Wire.write(0x12);      // address bank A
     Wire.write(A_data);
     Wire.endTransmission();
     if(micros()-servo_timing[1]>(20000-servo_tim))
     {
       A_data|=0b00000001;
       Wire.beginTransmission(0x20);
       Wire.write(0x12);      // address bank A
       Wire.write(A_data);
       Wire.endTransmission();
       servo_timing[0]=micros();
       servo_timing[1]=micros();
     }
   
  }
}
Source Link
opi03
  • 11
  • 1

For example... unsigned long long servo_timing[2]={0,0}; int A_data=0; void servo_ini() { Wire.beginTransmission(0x20); Wire.write(0x00); // address bank A Wire.write(0x00); Wire.endTransmission(); } void servo_set(unsigned int servo_tim,bool servo_mod){ if(servo_mod==1){ servo_tim=map(servo_tim,0,180,200,1900); } //if(servo_vector<=0)/lcd_tim=650;/servo_tim=220;/0 //if(servo_vector==1)/lcd_tim=1400;/servo_tim=1000;/90 //if(servo_vector>=2)/lcd_tim=2255;/servo_tim=1870;/180 if(micros()-servo_timing[0]>servo_tim) { A_data&=0b11111110; Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write(A_data); Wire.endTransmission(); if(micros()-servo_timing[1]>(20000-servo_tim)) { A_data|=0b00000001; Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write(A_data); Wire.endTransmission(); servo_timing[0]=micros(); servo_timing[1]=micros(); }

} }