Hallo, ich arbeite gerade mit einem PSoC und bin noch ziemlicher Neuling. Ich bekomme von einem Sensor ein Statussignal gesendet. Dieses ist entweder High (1) oder Low (0). Jett möchte ich dieses auswerten. Über einen Interrupt, der alle 25 ms ausgelöst wird frage ich den Status dieses Signals ab. Ich muss zur auswertung 20 Werte speichern und dann ein Verhältnis bilden. Je nachdem welches Verhältnis rauskommt, ist es ein gewisser Status. Also bei 1:1 Status 1 bei 3:1 Status 2 und so weiter. Kann ich das über ein PWM Baustein machen? Wie müsste ich diesen Konfigurieren und programmieren. Ich hab ehrlich gesagt kein richtigen durchblick wie ich das ganze realsiieren kann. Grüße
Wozu willst du eine Hardware-Komponente dafür einsetzen? Bei einem Abstand von 25ms kannst du doch problemlos eine kleine C-Funktion implementieren, die dir das Verhältnis zurückgibt.
1 | Pseudocode
|
2 | |
3 | volatile uint8 Counter = 0 //zählt die max 20.Werte |
4 | volatile uint8 Status = 0 //hier kumulierst du den Pin-Status |
5 | |
6 | //25ms-IR
|
7 | Counter++ |
8 | Status = Status + PinRead() |
9 | |
10 | |
11 | //in der main()
|
12 | Verhaeltnis = 0 //type, den du halt brauchst |
13 | ..
|
14 | if Counter = 20 |
15 | Verhaeltnis = Counter / Status |
16 | Counter = 0 |
17 | status = 0 |
18 | endif
|
Wenn es denn doch in Hardware sein soll, könntest du einen Counter benutzen. Dein Eingangssignal wird gezählt und nach 20*25ms schaust du halt nach, was im Counter steht.
Hey, jop genau so hatte ich es auch geplant. Einen Counter will ich nicht verwenden, bzw muss ich schauen ob ich überhaupt noch verwenden kann. Es sind nur maximal 5 Stück möglich und diese sind aufbebraucht für andere Funktionen. Das mit der if Abfrage ist eine sehr gute Idee. Diese werde ich umsetzen. Danke schön Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.