Flankenwechsel erkennung..
-
Hallo Leute,
ich habe folgende frage und wußte nicht wohin damit. s handelt sich dabei um c-programmierung:
ich soll bei einer positiven flanke einen zähler hochsetzen..
dies habe ich mir so gedacht: ich habe eine globale variable, wo ich
sozusagen den wert des signals übermittelt bekomme..dann habe ich in meiner funktion eine static signal_old_u8
variable..diese wird mit FALSE vorinitialisiert..dann übergebe ich ihr den wert, der mir die globale variable
übermittelt..anschließend frage ich nach:
static signal_old_u8 = FALSE; signal_old_u8 = status_global; if((status_global != signal_old_u8) && (status_global = TRUE)) { zähler += 1; }
ist das soweit richtig? ich soll den zähler nur bei einer positiven
flanke erhöhen, wenn vorher FALSE war..danke für hilfe..
-
Naja, wenn du vor dem Vergleich beide gleichsetzt, kann das Ergebnis ja nicht stimmen. Und wenn die Zustände jeweils nur TRUE und FALSE sein können, wäre so doch etwas überschaubarer:
static signal_old_u8 = FALSE; if( status_global > signal_old_u8 ) { zähler++; } signal_old_u8 = status_global;
-
ist das ein microcontroller? schau dir mal "Input Capture" interrupt an
-
BorisDieKlinge schrieb:
schau dir mal "Input Capture" interrupt an
er will ja nur flanken zählen, nicht impulslängen messen oder impulse speichern.
-
aber so wäre es eleganter, man kann ja den imput capture mode auf flanken welchse konfigurieren
-
Da würde man (wenn denn vorhanden) gleich einen Timer mit externem Takt verwenden. Aber da wir ja nichtmal wissen, ob das auf einem Controller laufen soll...
-
^^eure vorschläge werden ja immer abenteuerlicher.
-
fricky schrieb:
^^eure vorschläge werden ja immer abenteuerlicher.
das liegt wohl an der sehr interpretationsfreudigen art und weise, wie die frage gestellt ist
-
sothis_ schrieb:
fricky schrieb:
^^eure vorschläge werden ja immer abenteuerlicher.
das liegt wohl an der sehr interpretationsfreudigen art und weise, wie die frage gestellt ist
was hast du an der frage auszusetzen?
ich glaube Boris und Tim meinen das ernst.
-
fricky schrieb:
was hast du an der frage auszusetzen?
nun, nichts
ich meinte nur das solche fragen meistens gleich zu solchen, entschuldige boris, klugscheißposts führt, welche dann den thread in einer wilden spekulationorgie ausarten lässt und dies dann häufig absolut nichts mehr mit der frage zu tun hat
-
klugscheisser?? wir sind im ANSI C forum, und es geht um flankenwechsel... wo liegst problem das man von einem "Microcontroller" ausgehen könnte. Und was hat das mit Klugscheisserei zu zun, wenn "Input Capture" dafür ne alternative wäre...
ohh man entschuldige _sothis, aber du bist ein mongo
, mit deinen ich bin der chef ihr seit nix beleidigungen...
-
Geht's noch?
-
BorisDieKlinge schrieb:
Und was hat das mit Klugscheisserei zu zun, wenn "Input Capture" dafür ne alternative wäre...
weil er die flanken nur zählen will, zeiten interessieren doch nicht. ich würde auf 'nem microcontroller einen interruptfähigen eingang nehmen, den für die entsprechende flanke konfigurieren und in der ISR einfach nur eine variable hochzählen. wer jetzt noch klugscheissern will, der kann ja einwände wie interruptlatenz, glitches usw. bringen. aber Tims vorschlag war ja noch abgefahrener als deiner.
-
Da das eigentlich Thema eh durch sein dürfte...
fricky schrieb:
aber Tims vorschlag war ja noch abgefahrener als deiner.
Warum? Was ist daran "abgefahren"? Warum sollte man etwas im Code erledigen, was die Hardware (je nach Controller natürlich) schon selbst kann?
-
Tim schrieb:
Warum? Was ist daran "abgefahren"?
wozu brauchst du einen 'Timer mit externem Takt'?
-
Brauchen tut man den nicht, aber wenn man ihn hat, kann man ihn doch dafür verwenden.
-
Tim schrieb:
Brauchen tut man den nicht, aber wenn man ihn hat, kann man ihn doch dafür verwenden.
ach jetzt verstehe ich was du meinst. du willst den timer als zähler missbrauchen, weil er so arbeitet wie einige hintereinandergeschaltete j-k flipflops. stimmt, das könnte ja doch gehen. ich dachte ursprünglich, du willst auch zeiten messen wie boris.
-
Ich hatte auch schon das Gefühl, dass wir uns mißverstehen
-
fricky schrieb:
Tim schrieb:
Brauchen tut man den nicht, aber wenn man ihn hat, kann man ihn doch dafür verwenden.
ach jetzt verstehe ich was du meinst. du willst den timer als zähler missbrauchen, weil er so arbeitet wie einige hintereinandergeschaltete j-k flipflops. stimmt, das könnte ja doch gehen. ich dachte ursprünglich, du willst auch zeiten messen wie boris.
Ach, deswegen sind keine Timer mehr frei, wenn man was übernehmen soll? fricky und Tim haben sie alle zu Zählern degradiert ... aaahso
-
pointercrash() schrieb:
fricky und Tim haben sie alle zu Zählern degradiert
dann musst du dir mal eben selbst was basteln: http://static.flickr.com/119/308483274_0ae3c17aa3_o.jpg