-
        

Ergebnis 1 bis 9 von 9

Thema: atmel mit 2 input captures?

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380

    atmel mit 2 input captures?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    ich Suche nen atmel mit 2 inputcapture-einheiten, kennt da wer einen ? in der parametric table von atmel findet man so nen parameter leider nciht ...

    es geht um die messung eines phasenversatz 2er sinusschwingungen, meineidee war ers nach nem schmitttrigger die flankenzeiten zu messen aber wenn ich nur einen inputcapture habiss des bissl und 2 megas verwenden iss auch mist wie ich die nicht synchron bekomme

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    abgesehen davon, dass dein Deutsch schlecht ist und ich nicht so der Experte in Sachen Mikrocontroller bin, hätte ich da einen Vorschlag

    Du könntest doch über den externen Interrupteingang beide Controller synchronisieren um anschließend die Zeitdifferenz beider Signale über eben diesen Eingang zu ermitteln.
    Müsstest du anschließend nur die Zählerstände beider Controller auswerten.

    Gruß, pacer

    Edit: der Mega8 hat doch 2 Interrupteingänge, da sollte man doch was draus machen können, oder?

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    OT @pacer_one
    abgesehen davon, dass dein Deutsch schlecht ist
    was sollte dieser überflüssige kommentar bitte, wenn du rechtschreibgeil bist dann antworte nicht auf meine fragen .... meine fresse sowas regt mich auf
    diverse tippfehler gestehe ich ja ein und wenn ich grad n bissl mehr zeit hab les ich auch nochmal kontrolle aber eben gerade hatte ich halt keine #


    OT Ende

    die interrupteingänge kannste knicken, eh ich in der ISR bin vergehen einige takte und ausserdem ist die abarbeitung in der ISR nicht immer gleich (mögliche verzweigungen) also relativ unpräzise

    die ICU ist da so präzise dass sie schon 2-3 takte nach der erkannten flanke den wert in ein dafür vorgesehenes register geschrieben hat, welches ich dann gemütlich auslesen kann

    die notlösung sieht vor, in der interrupt-ISR den timerwert ohne umschweife in eine variable zu kopieren und dann über eine flag-variable im hauptprogramm diese dann auszulesen und zu verarbeiten ... aber wenn der phasenversatz relativ gering oder gar 0 ist, macht sich das blöd, wenn sich die ISRs gegenseitig blockieren

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Nun, du hast leider keine Angabe gemacht, wie genau du das Ergebnis haben möchtest und wie oft du abtasten willst. Soweit ich weiß, wird wenn ein Interrupt auftritt, der aktuelle Befehl ausgeführt und anschließend in die ISR gesprungen.
    Dadurch gibt es nur einen Unterschied der in der Länge des abzuarbeitenden Befehls begründet ist. Wie lange der MC benötigt um in die ISR zu kommen, ist ja egal.
    Verzweigungen sollten in der ISR natürlich nicht vorkommen.

    Eventuell kannst du ja sogar zwei Timer nehmen und beide erst in der Hauptroutine auslesen. Dann müsstest du in der ISR die Zähler nur stoppen.
    Dadurch sollte die ISR sehr kurz werden, bei entsprechender Taktung des MCs sollte dann Zeiten µs-Bereich zu messen sein. Einen AVR mit einer Capture-Einheit habe leider nicht zu bieten.


    Tschuldigung, ich hab nix gegen Tippfehler und rechtschreibgeil bin ich noch lange nicht, aber deine Schreibweise ist schon ziemlich ignorant, da muss man ja dreimal lesen um zu verstehen.
    Und nicht gleich losholzen, auch wenn es nicht das ist was du hören wolltest, habe ich doch versucht dir zu helfen.

    Edit: muss mich da korrigieren, einen Timer kann man natürlich nicht stoppen, sondern nur den Zählerstand im ICR-Register speichern. Von daher braucht man dann auch zwei Timer.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    Der kleinste ATMega mit 2 Input Captures müsste der Mega162 sein.
    Generell haben glaube ich alle AVR pro 16bit Timer einen Input Capture.
    So findest Du auch über den Parametric Table schnell den richtigen.

    Gruß,
    askazo

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    @Askazo
    Stimmt, der Mega 162 hat zwei Captureinheiten. Timer1 und Timer 3
    Die Aussage ist soweit korrekt, 3x nachgeschaut, 3x Treffer

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    danke euch, sry dass ich gleich so reingesprungen bin ... bisl stressig grad
    Dann müsstest du in der ISR die Zähler nur stoppen.
    kann ich ja, einfach prescaler-bits auf 0 setzen

    M162 hab ich sogar zufälligerweise 2 über!

    der M32 hat auch 2 timer aber eben nur 1 ICU deswegen die erfahrungsfrage

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn man es wirklich so genau haben will, das man 2 ICP einhaten haben muß, dann sollte man ohne Verteiler arbeiten und hat dann auch kein Problem etwas zurückzusetzen.
    Die Alternative wäre wirklich nur einen ICP und einen externen interrupt zu nehmen. Die Interrupt Antwortzeit kriegt man reproduzierbar (Zyklengenau), wenn man den µC per sleep Befehl in den Idel mode versetzt.

    Der M32 hat zwar 3 Timer, aber nur einer davon ist ein 16 Bit Typ.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    dann sollte man ohne Verteiler arbeiten und hat dann auch kein Problem etwas zurückzusetzen.
    ja gut, nur versteh ich grad leider den zusammenhang nichtm, was meinst du mit "verteiler" ??? ich hab keinen "verteiler"!

    die interrupt-reaktionszeit auszurechnen erfodert schon einiges an vorkenntnissen .... ich hab schon ein bild davon was da so an rechenzyklen draufgeht, zumal wir vor ner weile schonmal drüber diskutiert haben(hier im forum), aber ICH muss diesen teil ja nicht programmieren, das muss der E-techniker der hier mit mir zusammenarbeitet und ich kann ihm da schlecht alles vorbeten, er muss es später ja auch selber verstehen und belegen können ... er wollte das ganze mit ner analogen recheneinheit machen, die nachweislich (testaufbau) nicht ganz unempfindlich gegen EMI und frequenzgang ist!

    ausserdem ist er schon mit seinen leistungsteilern und kopplern genug geschädigt, da traue ich ihm einfach nicht zu das problem mit den ACU auch noch in den griff bekommt ... zumal meine datenauswertung von seinem output abhängig ist und wenn er selber die daten schon digital erfasst und auswertet, bruach cih sie einfach nurnoch per UART übertragen, statt eine möglicherweise schwingenden DC Pegel messen zu müssen

Berechtigungen

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