-         
+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Frequenzen erzeugen mit ATMega

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    36
    Beiträge
    51

    Frequenzen erzeugen mit ATMega

    Hallo,

    ich dachte ich hätte schon so einen Trhead offen hab ihn aber nicht wiedergefunden .

    Ich möchte mit einem ATMega 16 später 32 einen Frequenzverlauf erzeugen.
    Wichtig ist, dass ich ab 0 Hz in 1 Hz Schritten bit zu max 650 Hz gehen kann.
    Ich denk schon ne ganze weile drüber nach. Hatte zuerst die PWM im auge. Das Signal muss ne gleichmäßiges Rechteck sein. Mit Timern hab ich auch schon experimentiert.
    Der Haken an Timern ist, dass bei eintritt von anderen Interrupts extern oder UART nicht sichergestellt ist, dass auch der Timer interrupt behandelt wird.
    Habt ihr andere Ideen?
    MFG

    Bomb

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also der PWM wird dich auf keinen Fall weiterbringen, weil du da ja nur einige wenige Frequenzen je nach Prescaler hast und nur das Tastverhältniss ändern kannst, damit ändert isch aber nciht die Frequenz...

    MFG Moritz

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    28.04.2004
    Ort
    Nähe Köln
    Alter
    50
    Beiträge
    247
    Hallo

    Das ist mehr eine Sache des gesamten Timings und des programm Aufbaus. Wie genau muß die Frequenz denn sein ? Die Lösung mit den Interrupts ist schon der richtige Weg.

    Kommt halt darauf an, was sonst noch läuft auf dem uC und wie Zeitkritisch die anderen Sachen sind.

    MFG
    Dieter

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    36
    Beiträge
    51
    Tja.. das ists ja... eigendlich ist zu viel kritisch
    die Frequenzen sollten sich schon in Hz bereichen angeben lassen.
    wie gesagt ungefähr 1 bis 650.
    Ich berechne nebnenher im Controller über einen , hoffendlich nicht zu komplizierten, Algorithmus eine Geschwindigkeit.
    Basis ist ~62,5Hz Pro m/s er Bereich geht bis ~10 m/s.
    passend zu der Geschwindigkeit müssen aber auch noch Kontakte betätigt werden. Immer als Paar. dabei ist das auslösen des ersten Kontaktes relativ unkritisch. Aber der darauffolgende muss exakt zur Ausgegebenen Geschwindigkeit(die Frequenz oben) passen. <-- Auch ne Timer Sache.zeiten sind hier aber im 2 stelligen ms bereich allerdings auf ne 1/100 ms genau.
    Um den ersten Kontakt auszulösen muss ich in ner Liste nachschauen ob denn der richtige augenblick da ist.
    Es gibt hier 3 solcher Kontaktpaare.

    Es gibt aber auch noch externe Interrupts. Allerdings könnte ich die auch in 'freier' Zeit Pollen. Die liegen länger an, sind also eigendlich nicht ganz so zeitkritisch. Aber per Interrupt isses irgendwieschöner

    Letztlich muss auch noch ein SSI signal ausgegeben werden.
    Allerdings wollte ich das Extern laufen lassen und nur konfigurationsparameter über den AVR an den 'SSI-Baustein' (da hab ich auch nochn Thread zu ) senden. Allerdings nur wenn änderungen auftreten. Das ist meist nicht der Fall. Aber wenn dann Mehrfach hintereinander in relativ schneller folge. Genauer kann ichs leider auch noch nicht sagen

    edit:
    Wenn ich sicherstellen kann dass der Timer immer ausgeführt wird. dann kann ich auch damit leben dass die von mir gewollte Frequenz. Erst ne Sekunde später anliegt. Wichtig ist das der Takt kommt und die Kontaktpaare nicht vergessen werden. Ich kann sicher meine sachen noch sehr entschlacken.

    Gruß

    Steffen
    MFG

    Bomb

+ Antworten

Berechtigungen

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