Close

Zmena kódu 12bit PWM pomocou Timer1 na Timer3

Úvodní stránka Fórum Vaše projekty Arduino Zmena kódu 12bit PWM pomocou Timer1 na Timer3

  • Toto téma obsahuje celkem 0 odpovědí. Do diskuze (1 diskutující) se naposledy zapojil uživatel MifkoKE a poslední změna proběhla před 8 roky a 11 měsíci.
Aktuálně je na stránce zobrazen 1 příspěvek (celkem z 1)
  • Autor
    Příspěvky
  • #5606
    MifkoKE
    Účastník

    Ahoj, potrebujem poradiť, ako by som mohol upraviť kód, ktorým môžem pomocou Timer1 využívať 12bit PWM na výstupe 9. Tu dávam funkčný kód, ktorý používam, ale potrebujem to prepísať na využitie Timer3 pre Arduino 2560 Mega. Tento od funguje perfektne, ale Timer1 používam pre 433MHz transmitter, takže tom potrebujem zmeniť na Timer 3 a napríklad PIN 5.
    Ďakujem

    //12-Bit PWM on PIN9 using direct access to Timer1
    //Fade in and out an LED connected to that pin
    
    #define LEDValue OCR1A
    
    const int PWMMax = 4095;
    int value = 1;
    int direction = 1;
    
    void setup() { 
      pinMode(9,OUTPUT);
      
      TCCR1A = (1 << COM1A1) | (1 << WGM11);                // Enable Fast PWM on OC1A (Pin 9)
      TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10);   // Mode 14 Fast PWM/ (TOP = ICR1), pre-scale = 1
      
      ICR1 = PWMMax;  //Set the TOP value for 12-bit PWM
      LEDValue = 0;      //Set the PWM output to full off.
    }
    
    void loop() {
      //Fade the LED between 0 and PWMMax and then back to 0
      value += direction;
      if (value <=0){
        direction = 1;
      }
      else if (value >= PWMMax){
        direction = -1;
      }
      LEDValue = value;
      delay(1);
    }
Aktuálně je na stránce zobrazen 1 příspěvek (celkem z 1)
  • Pro reakci na toto téma se musíte přihlásit.