| 1496 | */ |
| 1497 | |
| 1498 | void pwmSetRange (unsigned int range) |
| 1499 | { |
| 1500 | if ((wiringPiMode == WPI_MODE_PINS) || (wiringPiMode == WPI_MODE_PHYS) || (wiringPiMode == WPI_MODE_GPIO)) |
| 1501 | { |
| 1502 | /* would be possible on ms mode but not on bal, deactivated, use pwmc modify instead |
| 1503 | if (piGpioBase == GPIO_PERI_BASE_2711) { |
| 1504 | range = (OSC_FREQ_BCM2711*range)/OSC_FREQ_DEFAULT; |
| 1505 | } |
| 1506 | */ |
| 1507 | if (!pwm) { |
| 1508 | fprintf(stderr, "wiringPi: pwmSetRange but no pwm memory available, ignoring\n"); |
| 1509 | return; |
| 1510 | } |
| 1511 | int readback = 0x00; |
| 1512 | if (piRP1Model()) { |
| 1513 | pwm[RP1_PWM0_CHAN0_RANGE] = range; |
| 1514 | pwm[RP1_PWM0_CHAN1_RANGE] = range; |
| 1515 | pwm[RP1_PWM0_CHAN2_RANGE] = range; |
| 1516 | pwm[RP1_PWM0_CHAN3_RANGE] = range; |
| 1517 | readback = pwm[RP1_PWM0_CHAN0_RANGE]; |
| 1518 | } else { |
| 1519 | *(pwm + PWM0_RANGE) = range ; delayMicroseconds (10) ; |
| 1520 | *(pwm + PWM1_RANGE) = range ; delayMicroseconds (10) ; |
| 1521 | readback = *(pwm + PWM0_RANGE); |
| 1522 | } |
| 1523 | if (wiringPiDebug) { |
| 1524 | printf ("PWM range: %u. Current register: 0x%08X\n", range, readback); |
| 1525 | } |
| 1526 | } |
| 1527 | } |
| 1528 | |
| 1529 | |
| 1530 | /* |