12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*
- * analogWrite.cpp
- *
- * Created on: Sep 17, 2018
- * Author: Harry-Laptop
- */
- #include "analogWrite.h"
- #include "ESP32PWM.h"
- void analogWrite(uint8_t APin, uint16_t AValue) {
- if(APin== 25 ||APin==26){
- dacWrite(APin, AValue);
- return;
- }
- ESP32PWM* chan = pwmFactory(APin);
- if (AValue == 0) {
- if ((chan != NULL) && chan->attached()) {
- chan->detachPin(APin);
- delete chan;
- pinMode(APin, OUTPUT);
- }
- digitalWrite(APin, 0);
- } else if (AValue >= 255) {
- if ((chan != NULL) && chan->attached()) {
- chan->detachPin(APin);
- delete chan;
- pinMode(APin, OUTPUT);
- }
- digitalWrite(APin, 1);
- } else
- {
- if (chan == NULL) {
- chan = new ESP32PWM();
- }
- if(!chan->attached()){
- chan->attachPin(APin,1000, 8); // This adds the PWM instance to the factory list
- //Serial.println("Attaching AnalogWrite : "+String(APin)+" on PWM "+String(chan->getChannel()));
- }
- chan->write(AValue);
- // Serial.print( "ledcWrite: " ); Serial.print( CESP32PWMPinMap[ APin ] - 1 ); Serial.print( " " ); Serial.println( AValue );
- }
- }
|