Arduino Due, Timers und Counters

Hi zusammen,

für unser Projekt verwenden wir die PWM-Ausgänge und möcjhten diese über die Timer verändern, um ein 50Hz-Sinussignal erzeugen zu können (wir steuern eine Vollbrückenschaltung an).

Jede Hilfestellung verwies uns auf die Timer-Einstellungen (z.B. TCCRxA), welche am genauesten und praktikabelsten wären.
Unser Problem besteht darin, dass die einfachsten Beisiel-Codes auf unserem Due nicht laufen.
Fehlermeldung: "TCCRxA: not declared in this scope" , obwohl wir zuvor #include <avr/io.h> reingeladen haben. Jedoch war auch das reinladen des <avr/io.h> nicht ohne Probleme behaftet.

Gibt es da ein Due-spezifisches Problem? oder von der aktuellen Software 1.5.8 BETA?

Besten Dank schon mal :slight_smile:
Timo und Max

Hallo,

vorweg. Ich habe keinen Due und werde mir nie einen zulegen. Aber für den Due brauchst Du zwingend die Arduino IDE 1.5.8, egal ob da Beta dabei steht oder nicht.

Und der µC auf dem Due ist kein gewohnter Atmel 8 Bit Controller. Der hat einen ARM Cortex Rechenkern, also andere interne Architektur. Schau mal ins Datenblatt zu dem verbauten µC wie denn die Register und Ports wirklich mit Namen heißen. Womöglich heißen die anders. Hab noch nicht nachgeschaut.

Edit:

Seite 869

Wenn Du die IDE nutzt, müßten schon die richtigen Libs automatisch aufgerufen werden, ansonsten ist vielleicht doch deine avr und io die falsche. Ist nur eine Vermutung von mir.

TimoMax:
Unser Problem besteht darin, dass die einfachsten Beisiel-Codes auf unserem Due nicht laufen.
Fehlermeldung: "TCCRxA: not declared in this scope" , obwohl wir zuvor #include <avr/io.h> reingeladen haben.

Du willst uns vergackeiern, oder?

Direkte Registerprogrammierung mit AVR 8-Bit Registern funktioniert natürlich nur auf 8-Bit AVR-Controllern!

Und selbstredend NICHT auf einem Arduino DUE mit einem 32-Bit ARM-Controller. Auf einem ARM-Controller mußt Du bei "direkter Controller-Programmierung" natürlich die Register programmieren, die ein ARM-Controller hat, denauer gesagt die internen Register einer SAM3X8E ARM Cortex-M3 CPU, wie sie sich auf dem DUE-Board befindet.

Vielen Dank!
Ihr habt uns eine ordentliche Blockade gelöst :wink: