-
        

Ergebnis 1 bis 8 von 8

Thema: 4x 16Bit-Hardware-PWM mit Bascom

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253

    4x 16Bit-Hardware-PWM mit Bascom

    Anzeige

    Tagchen!

    Ich brauche 4 Hardware-PWMs mit 16 Bit Auflösung. Gibt es Atmegas die das schaffen UND ist es in Bascom machbar? Weil bei dem Timer-Config-Befehl für das PWM scheinen nur maximal 10 Bit möglich.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Moin,

    genau um soetwas herauszufinden hat ATMEL eine schöne Überscicht bei sich auf der Webseite ...

    http://atmel.com/dyn/products/param_...&Direction=ASC

    Ach ja, es gibt solche AVR Microcontroller ....

    Im übrigen könntest du ja auch die entsprechenden Register selbst setzen .. das nur mal so als Hinweis, wenn das mit dem Config Befehl nicht funktioniert.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Die Seite ist mir durchaus geläuftig, nur leider steht dort nicht, wieviel Bit die PWM-Kanäle haben...
    Und was das Register-Setzen angeht: Daran dachte ich auch schon, allerdings hab ich keinen Schimmer von Assembler (gestern wegen den Registern schon Datenblätter gewälzt), was das kleinere Problem wäre. Das Entscheidende ist: Warum machen die Bascom-Leute nur maximal 10 Bit wenn auch mehr gingen?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Zitat Zitat von Goblin
    Die Seite ist mir durchaus geläuftig, nur leider steht dort nicht, wieviel Bit die PWM-Kanäle haben...
    Und was das Register-Setzen angeht: Daran dachte ich auch schon, allerdings hab ich keinen Schimmer von Assembler (gestern wegen den Registern schon Datenblätter gewälzt), was das kleinere Problem wäre. Das Entscheidende ist: Warum machen die Bascom-Leute nur maximal 10 Bit wenn auch mehr gingen?
    Als Hinweiss könnten dir die Anzahl der 16 Bit Timer dienen ...
    ansonsten sorgt meistens ein kurzer Blick ins Datenblatt für Klarheit.

    naja ... in Assembler ist es eigentlich ganz einfach.

    entweder:

    Code:
    ldi r16, 0b01010101 ; 1 = gesetztes bit
    out TCCR1A, r16
    oder:

    Code:
    ldi r16, (1<<WGM11) | (1<<CS10)
    out TCCR1A, temp
    Anmerkung: das ist einfach blind getippt und hat zu 99,9% keinen Bezug auf die tatsächlichen Bits.

    In Bascom könnte es wie folgt gehen:

    Code:
    TCCR1A = 0b01010101
    Die Entwickler machen dieses wohl auch deswegen, weil eben nicht jeder AVR diese Möglichkeiten bietet ...

    Das Stichwort ist hier kompatibilität.

    Grüße,

    da Hanni.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    geht nur 1 pwm pro 16-bit-timer oder mehrere?

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Beim Atmega 128 funktionieren meines Wissens nach bis zu 3 Hardware PWM's über einen 16 Bit Timer ... und 2 hat er ...

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    ja wunderbaaar! dann müsste ich nur noch wissen wie das geht. Bascom wird ja egal sein, wieviel bit der timer hat, da muss ich dann wohl selber dran denken, oder? 10 bit reichen mir dann evtl auch. also nehm ich mir die beiden timer meiner wahl und configurier sie für pwm. righty?

    €dit: Mm. Der Mega162 scheint das Minimum zu sein, was ich brauche. Der hat 2x 16Bit-Timer. Lustigerweise wird bei Reichelt ein PIC-Controller angezeigt.. Hab erst nen Schreck bekommen als ich das Bild gesehen hab:



    Ich dachte schon ich müsste mir ne UV-Lampe zum Löschen besorgen!

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Richtig.

    Ich würde übrigens vorschlagen das wir einfach mal annehmen, das es ein Mega 162 werden soll.
    Der hat im übrigen genau 4 16 Bit PWM Kanäle.

    Weil, wenn du einmal den Dreh raus hast ist der µC defako egal.

    Im übrigen ist der folgende Weg recht gangbar.

    1. besorg dir nen Blatt Papier und einen Stift.
    2. Nimm dir das Datenblatt und such dann herraus, welche Bits in welchen Registern gesetzt werden müssen.
    3. Versuch dadraus nen Code zu machen.

    Wenn du bei einem Problem Hilfe brauchst, schrei einfach

    Grüße,

    da Hanni.

    €dit: den 128er durch nen 162er Mega ersetzt

Berechtigungen

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