Forum: Gesperrte Threads Wenn, Dann, Sonst


von Christian L. (qgel)


Lesenswert?

Hallo zusammen,

bin gerade an einem Projekt mitdem ich ein Drehgeber auswerten möchte...

Da Spur A und Spur B zeitlich 90° verschoben sind habe ich mir folgenden 
Algorithmus ausgedacht.

habe einen Atmega8

Wenn Spur_A "steigende Flanke" und Spur_B "kein signal --> log.0"
dann zähle vor
sonst zähle zurück



hat jemand irgendein passendes stückchen Quellcode für mich oder kanns 
schnell runterschreiben?

gruß

: Verschoben durch Admin
von Steffen H. (steffen-h)


Lesenswert?

>hat jemand irgendein passendes stückchen Quellcode für mich oder kanns
>schnell runterschreiben?

klar:

if (track_A "rising flank" && track_B "no signal --> log.0"){
  count forward;
} else {
  count backward;
}

Es hat bestimmt auch noch jemand ein passendes stückchen Compiler oder 
kanns schnell runterschreiben.

von Horst (Gast)


Lesenswert?

Beim xMega und bei manchen kleinen ARMs hab ich Peripherie gesehen, die 
genau für die Auswertung derartiger Signale gedacht ist.

> oder kanns schnell runterschreiben?
Mal abgesehen davon, dass ich dazu keine Lust habe: dafür fehlen noch 
ein paar Infos.
z.B. welche Programmiersprache?
oder: woher kann man wissen, dass auf Spur A eine Flanke war? muss / 
kann man ständig den Portpin abfragen? Kann man einen externen Interrupt 
verwenden?

zu den Interrupts:
Der Mega8 kann sowohl steigende als auch fallende Flanken zum auslösen 
eines Interrupts verwenden. Dass würde ich nutzen, selbst wenn ich die 
Auflösung nicht benötige. Dann kann man sicherstellen, dass das Signal 
vor dem Interrupt für die steigende Flanke auf low war und der Interrupt 
nicht von einer Störung auf der Leitung ausgelöst wurde.

von Klaus W. (mfgkw)


Lesenswert?

abgesehen davon, daß es inhaltlich vollkommener Quark ist.
Solange sich nichts tut, zählt es nämlich laufend zurück.

von Horst (Gast)


Lesenswert?

Im Forum Codesammlung Artikel Übersicht nach Themen:
Link: AVR Softwarepool
Link: 7 Drehgeber

Und dann lesen.

von Simon K. (simon) Benutzerseite


Lesenswert?


Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.