Exemple #1
0
void
pwm_periodic()
{
#ifdef PWM_GENERAL_FADING_SUPPORT

 #ifdef CH_A_PWM_GENERAL_SUPPORT
  if (fadingAspeed!=0){
    int16_t chAdiff = getpwm('a')+fadingAspeed;
    if (chAdiff >= PWM_MIN_VALUE) {
      fadingAspeed=0;
      setpwm('a',PWM_MIN_VALUE);
    } else if (chAdiff<=0) {
      fadingAspeed=0;
      setpwm('a',PWM_MAX_VALUE);
    } else
      setpwm('a',chAdiff);
  }
 #endif /* CH_A_PWM_GENERAL_SUPPORT */
 #ifdef CH_B_PWM_GENERAL_SUPPORT
  if (fadingBspeed!=0){
    int16_t chBdiff = getpwm('b')+fadingBspeed;
    if (chBdiff >= PWM_MIN_VALUE) {
      fadingBspeed=0;
      setpwm('b',PWM_MIN_VALUE);
    } else if (chBdiff<=0) {
      fadingBspeed=0;
      setpwm('b',PWM_MAX_VALUE);
    } else
      setpwm('b',chBdiff);
  }
 #endif /* CH_B_PWM_GENERAL_SUPPORT */
 #ifdef CH_C_PWM_GENERAL_SUPPORT
  if (fadingCspeed!=0){
    int16_t chCdiff = getpwm('c')+fadingCspeed;
    if (chCdiff >= PWM_MIN_VALUE) {
      fadingCspeed=0;
      setpwm('c',PWM_MIN_VALUE);
    } else if (chCdiff<=0) {
      fadingCspeed=0;
      setpwm('c',PWM_MAX_VALUE);
    } else
      setpwm('c',chCdiff);
  }
 #endif /* CH_C_PWM_GENERAL_SUPPORT */

#endif /* PWM_GENERAL_FADING_SUPPORT */
}
/*
 * Class:     Motor
 * Method:    getpwm
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_cbccore_low_Motor_getpwm(JNIEnv* env, jobject obj, jint motor)
{
#ifdef CBC
    return getpwm(motor);
#else
    printf("Java_cbccore_low_Motor_getpwm stub\n");
    return -1;
#endif
}
Exemple #3
0
// set pwm via ecmdA
int16_t parse_cmd_pwm_command(char *cmd, char *output, uint16_t len) 
{
  uint8_t channel=cmd[1];
  uint8_t value=atoi(cmd+3);

  if (cmd[0]=='\0') {
#ifdef CH_A_PWM_GENERAL_SUPPORT
    PWMDEBUG ("a: %i\n",getpwm('a'));
#endif /* CH_A_PWM_GENERAL_SUPPORT */
#ifdef CH_B_PWM_GENERAL_SUPPORT
    PWMDEBUG ("b: %i\n",getpwm('b'));
#endif /* CH_B_PWM_GENERAL_SUPPORT */
#ifdef CH_C_PWM_GENERAL_SUPPORT
    PWMDEBUG ("c: %i\n",getpwm('c'));
#endif /* CH_C_PWM_GENERAL_SUPPORT */
    return ECMD_FINAL_OK;
  }
  if (cmd[2]=='\0') {
      return ECMD_FINAL(snprintf_P(output, len, PSTR("%i"), getpwm(channel)));
  }
  setpwm(channel,value);

  return ECMD_FINAL_OK;
}