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 }
// 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; }