mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-05 03:21:42 +00:00
Merge "Fix segfault in DIO PWM generators [artf3653]"
This commit is contained in:
@@ -256,7 +256,7 @@ void* allocatePWM(int32_t *status) {
|
||||
* @param pwmGenerator The pwmGen to free that was allocated with AllocateDO_PWM()
|
||||
*/
|
||||
void freePWM(void* pwmGenerator, int32_t *status) {
|
||||
uint32_t id = *((uint32_t*) pwmGenerator);
|
||||
uint32_t id = (uint32_t) pwmGenerator;
|
||||
if (id == ~0ul) return;
|
||||
DO_PWMGenerators->Free(id);
|
||||
}
|
||||
@@ -283,7 +283,7 @@ void setPWMRate(double rate, int32_t *status) {
|
||||
* @param dutyCycle The percent duty cycle to output [0..1].
|
||||
*/
|
||||
void setPWMDutyCycle(void* pwmGenerator, double dutyCycle, int32_t *status) {
|
||||
uint32_t id = *((uint32_t*) pwmGenerator);
|
||||
uint32_t id = (uint32_t) pwmGenerator;
|
||||
if (id == ~0ul) return;
|
||||
if (dutyCycle > 1.0) dutyCycle = 1.0;
|
||||
if (dutyCycle < 0.0) dutyCycle = 0.0;
|
||||
@@ -308,28 +308,9 @@ void setPWMDutyCycle(void* pwmGenerator, double dutyCycle, int32_t *status) {
|
||||
* @param channel The Digital Output channel to output on
|
||||
*/
|
||||
void setPWMOutputChannel(void* pwmGenerator, uint32_t pin, int32_t *status) {
|
||||
uint32_t id = *((uint32_t*) pwmGenerator);
|
||||
if (id == ~0ul) return;
|
||||
switch(id) {
|
||||
case 0:
|
||||
digitalSystem->writePWMOutputSelect(0, pin, status);
|
||||
break;
|
||||
case 1:
|
||||
digitalSystem->writePWMOutputSelect(1, pin, status);
|
||||
break;
|
||||
case 2:
|
||||
digitalSystem->writePWMOutputSelect(2, pin, status);
|
||||
break;
|
||||
case 3:
|
||||
digitalSystem->writePWMOutputSelect(3, pin, status);
|
||||
break;
|
||||
case 4:
|
||||
digitalSystem->writePWMOutputSelect(4, pin, status);
|
||||
break;
|
||||
case 5:
|
||||
digitalSystem->writePWMOutputSelect(5, pin, status);
|
||||
break;
|
||||
}
|
||||
uint32_t id = (uint32_t) pwmGenerator;
|
||||
if (id > 5) return;
|
||||
digitalSystem->writePWMOutputSelect(id, pin, status);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user