Forum: Mikrocontroller und Digitale Elektronik bascom: Pulsein Library ändern


von Thomas B.D. (Gast)


Lesenswert?

Hallo,

mit Verwendung des Befehls Pulsein unter Bascom bleibt das Programm eine 
gewisse Zeit stehen, bis es entweder einen Puls detektiert hat oder ein 
Timeout entsteht. Nun möchte ich gerne diesen Befehl in der Library 
anpassen, so dass der Timeout sehr viel früher entsteht. Z.B. schon nach 
max. 200ms. Die momentane Zeit ist einfach zu lang für meinen 
Programmablauf.

Ich habe mir die mcs.lib angeschaut, jedoch sind meine Assembler 
Kenntnisse nicht sehr weitreichend. Könnte mir jemand sagen, was ich 
anpassen muss, um die Zeit variieren zu können? Vielen Dank!

von Sauger (Gast)


Lesenswert?

Moin,

Bau dir deine eigene Flankenerkennung. Vorgefertigte Bibliotheken zu 
ändern ist immer eine schlechte Idee. Du verlierst deine Änderungen 
spätestens mit dem nächsten Update oder fängst dir Probleme mit 
Bibliotheksfunktionen ein, die vom Original abhängig sind.

MfG

von Thomas B.D. (Gast)


Lesenswert?

darüber habe ich auch schon nachgedacht.

Das Problem ist, dass ich alle Timer (Atmega32) schon verwendet habe... 
Hättest du eine Idee / Denkanstoss, wie ich es ähnlich wie Pulsein 
realieren könnte, ohne einen Timer zu verwenden?

von Karl (Gast)


Lesenswert?

Wie Sauger schreibt. Z.b. so.
1
Bitwait PinX.X , Set                                
2
Start Timer0
3
Bitwait PinX.X , Reset                                
4
Stop Timer0
5
Signaltime = Tcnt0
6
...
7
Tcnt0=0

von Karl (Gast)


Lesenswert?

Thomas B.D. schrieb:
> Hättest du eine Idee / Denkanstoss, wie ich es ähnlich wie Pulsein
> realieren könnte, ohne einen Timer zu verwenden?

oh, zu spät gelesen.

von Karl (Gast)


Lesenswert?

Du könntest aber zwischen den beiden Bitwait-Befehlen irgendeinen Zähler 
einbauen und dann den Zähler auswerten.

X = X + 1

if X = irgendetwas ....

von Thomas B.D. (Gast)


Lesenswert?

Bitwait ist meines Wissens nach doch noch "schlimmer". Denn hier gibt es 
gar keinen Timeout oder? Und gerade der zu hohe Timeout ist ja mein 
Problem...

von Karl (Gast)


Lesenswert?

Oh ja, mein Fehler. Hatte Deinen Beitrag nur kurz überflogen. So bleibt 
das Programm im Zweifelsfall stehen.

Zeiten ändert man in BASCOM Libs oft mit "GENUS". Schau Dir mal diesen 
Beitrag an, da wird mit PULSIN und GENUS "gespielt":

http://www.mcselec.com/index.php?option=com_content&task=view&id=106&Itemid=57

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
Noch kein Account? Hier anmelden.