- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 28 von 28

Thema: PWM und Radencoder mit einem µC

  1. #21
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    37
    Beiträge
    270
    Anzeige

    Praxistest und DIY Projekte
    @wkrug:

    danke für die Ausführliche beschreibung. Wenn ich 2 Interrupts zur Verfügung habe weiß ich ja wie es umzusetzen geht. Das ist dann ja ganz easy. Meine Frage war aber wie man das mit nur EINEM Interrupt-Eingang und EINEM Timer machen kann.
    Aber mit dem Not-Aus Interrupt auf den Analog Comparator ist ne klasse Idee. Daran habe ich ja noch gar nicht gedacht. Wenn man es so macht ist wäre dann ja alles klar, weil man dann 2 Interrupts für die Encoder zur Verfügung hat.
    Wer aufhört besser zu werden, hat aufgehört gut zu sein

    Jeder I/O Port kennt drei Zustände: Input, Output, Kaputt

  2. #22
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Ich denke, das könntest Du so machen:
    Mach beide über ein ODER-Baustein (evtl. auch einfach Transistoren) auf die Interruptleitung und dann beide an einen eigenen Port. Dann wird bei jedem Signal, egal ob links oder rechts, ein Interrupt ausgelöst und Du kannst über die Pins den Zustand auslesen, d.h. auch wenn die Interrupts gleichzeitig kommen, funktioniert das. So machts nämlich der PC: Erstmal die allgemeine Interruptleitung aktivieren und dann gucken, welcher es war.

  3. #23
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    37
    Beiträge
    270
    @thewulf:
    aber auch da können noch Daten verloren gehen:
    folgender Fall angenommen:
    Encoder1 geht von 0-->1
    Encoder2 ist auf 0
    Interrupt wird ausgelöst alles super
    und jetzt geht der Encoder1 von 1-->0
    und zeitgleich der Encoder2 von 0-->1
    das bedeutet unter umständen wechselt das ODER-Glied seinen Ausgangspegel gar nicht (die haben ja auch noch eine kleine Verzögerung)
    Wer aufhört besser zu werden, hat aufgehört gut zu sein

    Jeder I/O Port kennt drei Zustände: Input, Output, Kaputt

  4. #24
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Du musst das anders sehen: Der Kontakt auf einer Seite ist schon längst wieder auf 0, noch bevor Du die ISR verlassen hast. Denn der Encoder bleibt nicht auf 1, sondern geht gleich wieder auf null. Ich würds auf nen Versuch ankommen lassen...

    Ansonsten mach doch einfach pro Seite einen Hochfrequenzzähler (also ich meine schneller als Atmel-Geschwindigkeit, z.B. einen 100MHz-Zähler) und Du guckst selbstständig alle paar Timeraufrufe auf den gezählten Wert.

  5. #25
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    37
    Beiträge
    270
    Naja, aber die Spur eines Encoders bleibt doch 180° auf high und ist dann für 180° low.
    Wenn sich die Spuren der beiden Encoder dann ungünstig überschneiden wechseln sie sich exakt ab und somit hat man hinter dem ODER 360° high, also immer high
    Wer aufhört besser zu werden, hat aufgehört gut zu sein

    Jeder I/O Port kennt drei Zustände: Input, Output, Kaputt

  6. #26
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    42
    Beiträge
    760
    hi,
    des mit einem interrupt nennt sich glaub daisy chain. da besteht aber ser wohl die gefahr, dass einzelne impulse vergessen werden.
    mfg jeffrey

  7. #27
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    37
    Beiträge
    270
    ja, genau das war meine Befürchtung. Das hatte ich ja schonmal geschrieben:

    Während der 10us im ISR sind ja alle weiteren INT deaktiviert. Kann es da nicht passieren das ich dann etwas verliere oder der Controller sich verzählt?

    Aber sagt mal, so ausergewöhnlich ist doch diese Anwendung nicht.
    Irgendwie beißen wir uns hier grad total fest hab ich das gefühl...
    Hat denn noch nie jemand sowas umgesetzt?
    Wer aufhört besser zu werden, hat aufgehört gut zu sein

    Jeder I/O Port kennt drei Zustände: Input, Output, Kaputt

  8. #28
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.01.2005
    Ort
    Tokyo
    Alter
    66
    Beiträge
    242
    Hi,
    teilweise wurde ja schon einiges geklärt. Trotzdem gebe ich noch meinen Senf dazu

    Wenn sich die IRQs überlappen, stört das nicht, solange nicht der gleiche nochmals kommt. Die IRQs, die nicht sofort bedient werden können, werden zwischengespeichert, sofern sie aus einer anderen Quelle stammen.
    Du kannst natürlich alle möglichen verschiedenen Methoden für die Auswertung der Encoder gleichzeitig verwenden. So habe ich das auch gemacht. Die zeitkritischen über INT (bei mir ca.8kHz). Das habe ich jetzt so gelassen, obwohl ich den in die Polling Routine noch mit rein nehmen könnte, aber das muß ich noch austesten.)
    Wenn es etwas langsamer sein darf: Pollen (und zwar mit der doppelten Abtastfrequenz, wie oben schon korrekt von jeffrey angemerkt wurde. Bei mir werden mit 28kHz 2 Encoder per Polling gleichzeitig ausgelesen, wobei bis jetzt nur einer getestet wurde.)
    Je mehr Encoder Du gleichzeitig auslesen willst, desto eher lohnt sich das Pollen, da Du zwar mit der doppelten Abtastfrequenz arbeiten musst, aber dafür nur einen Timer benötigst.

    Gruß
    pctoaster

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

Solar Speicher und Akkus Tests