- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 3 von 3

Thema: PWM bei BASCOM und tiny2313! Warum Timer1??? (Gelöst, danke)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.08.2005
    Beiträge
    86

    PWM bei BASCOM und tiny2313! Warum Timer1??? (Gelöst, danke)

    Anzeige

    E-Bike
    Guten Morgen zusammen,

    ich habe bei Roboternetz-Wissen ein kurzes abe feines Tutorial zum Thema PWM und Bascom gefunden.
    Dort ist folgender Code zu finden:
    ' Hardware PWM mit Timer1

    $regfile = "m8def.dat"
    $crystal = 4000000

    Config Portb.1 = Output
    Config Portb.2 = Output

    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

    Do
    Compare1a = 205
    Compare1b = 51
    Loop

    End
    Soweit sogut.

    Nun habe ich den Code für einen tiny2313 angewendet.
    Wie man sieht, wird der Timer1 für PWM konfiguriert.
    Aber beim tiny ist nur Timer0 mit PWM verbunden.

    Wieso aber funktiniert denn der Code auch bei 2313???

    Natürlch habe ich die Ausgabeports dem 2313 entsprechend auf Portb.3 und Portb.4 konfiguriert.
    Trotzdem erklärt sich für mich nicht die zeile
    Config Timer1 ......

    Würde mich über eine kurze Erklärung freuen.

    Was mich auch wurdert ist die Tatsache, das sich bei Änderung der "Prescale"-Wertes nicht an de Blinkfrequenz ändert.

    Hier mal mein Code:
    $regfile "ATtiny2313.dat"
    $crystal = 8000000
    $hwstack = 32
    $swstack = 32
    $framesize = 24

    '************************************************* *****************************
    Config Portb.3 = Output
    Config Portb.4 = Output
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

    Dim Schleife As Integer
    '************************************************* *****************************

    Do

    For Schleife = 100 To 250 Step 5
    Compare1a = Schleife
    Compare1b = 350 - Schleife
    Waitms 10
    Next Schleife

    For Schleife = 250 To 100 Step -5
    Compare1a = Schleife
    Compare1b = 350 - Schleife
    Waitms 10
    Next Schleife

    Loop

    End
    Danke im Voraus und Grüße

    popi

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    hmmm ... timer 1 hat beim 2313 auch zwei output compare register und auch
    die entsprechenden pins, ergo kann er auch PWM

    Deine Blinkfrequenz erzeugst du ja über die for-next-Schleifen
    in der Mainloop, hat also mit dem Timer Prescaler nix zu tun,
    sondern nur mit deiner Geschwindigkeit der Mainloop
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    18.08.2005
    Beiträge
    86
    Okay, danke, ich war irritiert, da im Datenblatt links im "Inhaltsverzeichnis" folgendes zu finden ist:
    8-bit Timer/Counter0 with PWM
    und weiter...
    16-bit
    Timer/Counter1
    ohne den Hinweis auf PWM

    Aber (Ache über mein Haupt) im Overview der jeweiligen Timer steht tatsächlich etwas über PWM.

    Schon komisch das Inhaltsverzeichnis.

    Vielen Dank....

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress