Arduino Mega 2560 Timer 0 + 2 für PWM

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Arduino Mega 2560 Timer 0 + 2 für PWM

      Hallo,

      bin gerade am testen der PWM-Einstellungen für den Arduino Mega.
      Bisher klappt alles ganz gut.
      Wollte nun den Timer 0 oder 2 für PWM nutzen (analog zum Beispielprogramm).
      Bascom bringt jedoch einen Fehler raus, sobald der config-Befehl Timer 0 oder 2 enthält.
      Was muss ich hier beachten bzw. was mache ich falsch...?

      Beispielprogramm (Auszug):

      Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Up ' ist ok

      Config Timer0 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Up ' funktioniert nicht, Fehlercode 8

      Config Timer2 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Up ' funktioniert nicht, Fehlercode 8

      Kann der Timer 0 bzw. 2 überhaupt als PWM eingesetzt werden ?

      Lt. Zuordnung soll Timer 0 mit Pin 4 und 13
      Timer 2 mit Pin 9 und 10 korrespondieren können.

      Danke schon mal für einen Hinweis :)

      Christoph
      Dateien
    • Lass mal pwm=8 bei den 8bit timern weg. Die Fehlernummer sagt mir jetzt nix, was steht den noch in der 'Fehlerzeile', also,was der compiler meldet?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hello!
      The first time I use ARDUINO MEDA 2560.
      The test on the ARDUINO-NANO board is working correctly.
      The test on the ARDUINO-MEGA emulator works correctly.
      The test on the ARDUINO-MEGA board does not work correctly.
      LED D13 does not blink. Voltage on D13 arbitrarily varies within the limits of 1.4-2.5V
      Power supply board 9V.
      The board is not connected to anything.

      Where is my mistake?

      $regfile = "m2560def.dat"
      $Crystal=16000000
      $hwstack=40
      $swstack=16
      $framesize=32

      '$regfile = "m328pdef.dat"
      '$crystal = 16000000
      '$hwstack = 40
      '$swstack = 16
      '$framesize = 32

      '$Sim

      'Config Portb.5 = Output
      Config Portb.7 = Output
      Do

      'Set Portb.5
      Set Portb.7
      Waitms 500

      'Reset Portb.5
      Reset Portb.7
      Waitms 500

      Loop

      End

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Vitalij ()

    • I understand that the voltage should have a logic level.
      In my case, the voltage is not logical.
      The program works correctly in ARDUINO NANO. The program does not work in ARDOINO MEGA.
      According to an oscilloscope and a multimeter, the state of D13 is similar to the input-Z. The program has a direct command to configure the D13-output.
      Where was I wrong?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Vitalij ()

    • Hi, the program is ok. Therefore, I would delete all the files bascom created while compiling (x.cfg, x.bin, x.bin, x.hex...) and then recompile and flash the .bas file.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Habe hier mal ein kleines Testprogramm geschrieben, welches auf den Arduino Board von ELEGOO Mega 2560 R3 in Verbindung mit dem Arduino Motor Shield R3 2 DC-Motoren antreibt. Die Drehrichtung der Motoren wird pro Loop-Durchgang gewechselt. Als Anzeige, welcher der Motoren läuft dienen 2 LED's an Bort B.
      Die PWM-Signale kann man auch an anderen Pins abnehmen. Hier ist das Datenblatt (welcher Timer zu welchem Pin gehört) unerlässlich.
      Eine kurze Zusammenstellung habe ich in einer Excel-Liste beigefügt. Hier ist der Zusammenhang zwischen Pin / Port-Nr. / Timer-Nr. / und Comp.Channel
      ersichtlich.
      Die Bremsfunktion (PortB.2+3) wird hier nicht weiter genutzt. Lediglich die Entsprechenden Pins dafür werden auf definierte Werte (Low) gesetzt.

      Die zwei Timer arbeiten im PWM-Mode 9, also mit 512'er Zählweise.
      Dateien
    • The problem with ARDUINO MEGA 2560 is solved!
      It turned out that the problem lies in the fusion ...
      Everywhere write that (by default) ARDUINO MEGA 2560 comes in the configuration start from the address $ 0000. I got two copies sewn differently.
      Fusebit High M -> 0: Reset vector is bootloader
      This means that after firmware, reset, or power-up, the program will start from the address specified by the loader.
      And I needed something that would start up bypassing the loader, in the old fashion ... from the zero address $ 0000.
      Therefore, I switched this bit to position "1"
      Fusebit High M -> 1: Reset vector is $ 0000.
      Everything worked as it should! biggrin