Hallo Ich suche eine einfache Schaltung, die einen Ausgang setzt, wenn am Eingang ein Puls länger als eine bestimmte Zeit ansteht. ZB. min. Pulsdauer ist 10s Am Eingang liegt ein 5V Puls von 5s an, Ausgang bleibt low. Am Eingang liegt ein 5V Puls von 11s an, Ausgang geht für eine bestimmte Zeit auf high und danach wieder auf low. Würde gerne so eine Schaltung ohne Verwendung eines uPs realisieren. Kennt jemand eine einfache Schaltung die das kann? mfg Sektionschef
Hi, das klingt wie *555 gesteuert über "R"reset wobei 10min schon ganz schön lange ist. viel Erfolg, Uwe
Uwe schrieb: > wobei 10min schon ganz schön > lange ist. Nur zur Info: der TO redet von 10 Sekunden. Zwei Monoflops. Das erste mit einer Zeit von 10s, das Zweite wird eine Verknüpfung vom Eingangssignal und dem 1.Monoflopausgang benötigen und wird dann getriggert, wenn das 1. Monoflop abfällt und das Eingangssingal noch immer anliegt.
Hi,
>Nur zur Info: der TO redet von 10 Sekunden.
Oh,stimmt. Dann ist *555 eigentlich optimal.
viel Erfolg, Uwe
Peter L. schrieb: > Am Eingang liegt ein 5V Puls von 11s an, Ausgang geht für eine bestimmte > Zeit auf high und danach wieder auf low Nach Ende des 11s Pulses oder nach 10s?
Georg M. schrieb: > Sowas wie 74HC4538? Ja. Und so gefühlsmäßig müsste das sogar ohne Zusatzgatter gehen, da der jeweils zwei Eingänge hat, die jeweils für den andern als Enable/disable nutzbar sind ...
Peter L. schrieb: > Würde gerne so eine Schaltung ohne Verwendung eines uPs realisieren. Aber warum? Warum?! Warum?!!
Georg M. schrieb: > Aber warum? Warum?! Warum?!! Das soll hier nicht diskutiert werden. mfg Sektionschef
Lothar M. schrieb: > Nach Ende des 11s Pulses oder nach 10s? nach Ende des 11s Pulses. mfg Sektionschef
Georg M. schrieb: > Aber warum? Warum?! Warum?!! Aber warum auch der Rum!? :) 1. Weil es interessant ist und Spaßt macht. 2. Für jemanden, der Firm in µC-Programmierung ist und für mindestens einen Typ eine Entwicklungsumgebung auf dem Rechner hat und deren Bedienung beherrscht, ist die µC-Variante der kürzeste Weg. Für jemanden, der sich evtl. in µC-Technik erst einarbeiten müsste, ist er es definitiv nicht. Peter L. schrieb: > Das soll hier nicht diskutiert werden. Sorry, hast recht, ich konnte mich nicht zurückhalten.
Georg M. schrieb: > Aber warum? Warum?! Warum?!! Weil für sowas ein ganz winziger µC (sowas im SOT23-6) genau der Richtige wäre - aber der TO sich nicht dazu durchringen kann, für sowas mal ein paar Zeilen in Assembler zu schreiben. DARUM. Ich hatte mal nen Kollegen, der sich naserümpfend derart geäußert hatte: "ich wüßte nicht, warum ich so einen µC NICHT in C programmieren sollte" - und das bei einem Teil mit maximal 512 Programmschritten. Forensisch: "streitet ab mit Nichtwissen". Tja, die heutigen "Fachleute" bemänteln ihre eigentliche Unfähigkeit mit hochnäsigem Gehabe, das ist alles. W.S.
Könnte so gehen:
1 | .-------------------. |
2 | | .--------. | .-------. |
3 | | | | | | | |
4 | | | Q +----. | | Q+----- |
5 | o----o--+>B | '--)--+>B | |
6 | | 10s | | | | |
7 | | | | | | |
8 | o+>A | '-o+>A | |
9 | | /Q| | /Q| |
10 | | | | | |
11 | '--------' '-------' |
12 | HC4538 |
13 | (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de) |
B triggert auf positive Flanke, A auf die negative.
Georg M. schrieb: > Aber warum? Warum?! Warum?!! W.S. schrieb: > Weil für sowas ein ganz winziger µC (sowas im SOT23-6) genau der > Richtige wäre - aber der TO sich nicht dazu durchringen kann, für sowas > mal ein paar Zeilen in Assembler zu schreiben. > > DARUM. Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist diese Diskussion in diesem Thread OT. Ich schlage daher vor, dass diejenigen von Euch, die dies unbedingt diskutieren möchten, einen eigenen Thread dafür eröffnen! W.S. schrieb: > Ich hatte mal nen Kollegen, der sich naserümpfend derart geäußert hatte: > "ich wüßte nicht, warum ich so einen µC NICHT in C programmieren > sollte" - und das bei einem Teil mit maximal 512 Programmschritten. > > Forensisch: "streitet ab mit Nichtwissen". > > Tja, die heutigen "Fachleute" bemänteln ihre eigentliche Unfähigkeit mit > hochnäsigem Gehabe, das ist alles. Dass diese Deine Äußerung ihrerseits ein wenig hochnäsig wirken könnte, kommt Dir nicht in den Sinn? ;)
@WS Das hochnäsige Gehabe scheint jetzt eher deins zu sein. Es gibt gute Gründe für sowas keinen uC zu verwenden: 1.) Ich brauch eine Entwicklungsumgebung für den uC 2.) Ich muss das uC Datenblatt/Handbuch lesen und verstehen 3.) Ich muss das Programm bei jedem Exemplar downloaden, das kostet Zeit und einen Stecker. Eine Hardwarelösung ist hier sicher die bessere Wahl. Grüsse
Vielen Dank für eure Antworten!!! Werde mir den 4538 mal näher ansehen. mfg Sektionschef
Peter L. schrieb: > Würde gerne so eine Schaltung ohne Verwendung eines uPs realisieren. > Kennt jemand eine einfache Schaltung die das kann? Hi, meinst Du so etwas? ciao gustav
Karl B. schrieb: > meinst Du so etwas? Bestimmt nicht - lies doch einfach mal den Eröffnungspost und die Antwort auf die Nachfrage von Lothar M.
HildeK schrieb: > Bestimmt nicht - lies doch einfach mal den Eröffnungspost und die > Antwort auf die Nachfrage von Lothar M. Lothar M. schrieb: > Nach Ende des 11s Pulses oder nach 10s? Peter L. schrieb: > nach Ende des 11s Pulses. > mfg Versteh ich nicht. Entweder 11 Impulse oder 11 Sekunden. Was denn nun? ciao gustav
Karl B. schrieb: > Peter L. schrieb: >> nach Ende des 11s Pulses. >> mfg > > Versteh ich nicht. > Entweder 11 Impulse oder 11 Sekunden. > > Was denn nun? Nach dem Ende eines 11 Sekunden dauernden Impulses soll die Ausgabe erfolgen (quasi mit der fallenden Flanke des Eingangssignales, welches zuvor länger als 10 Sekunden H war).
Karl B. schrieb: > Versteh ich nicht. Schon klar. > Entweder 11 Impulse oder 11 Sekunden. Wie kommst du auf 11 Impulse? > Was denn nun? ...
Karl B. schrieb: > Versteh ich nicht. > Entweder 11 Impulse oder 11 Sekunden. > > Was denn nun? Nochmal ergänzend:
1 | |
2 | Eingangssignal: |
3 | |
4 | |
5 | --------------------------------------
|
6 | | | |
7 | ---------- ---------------------- |
8 | |
9 | <------------- 11 Sekunden ----------> |
10 | |
11 | |
12 | Ausgangssignal: |
13 | -----
|
14 | | | |
15 | ------------------------------------------------- ---------------- |
16 | |
17 | |
18 | (Der Ausgang soll also erst nach dem Ende des langen Pulses kommen, nicht schon nach Ablauf von 10 Sekunden.) |
Karl B. schrieb: > Versteh ich nicht. > Entweder 11 Impulse oder 11 Sekunden. > > Was denn nun? Naja, so schwer ist das doch nicht :-) Lothar fragte, ob nach Ablauf der 10s das Ausgangssignal gestartet werden soll oder nach 11s, bei der negativen Flanke des Eingangssignals. Wenn der Eingangsimpuls kürzer als 10s ist, dann soll kein Ausgangssignal kommen. Und M.A.S. hat es nochmals schön gezeichnet ...
Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf. C1 muss an die Flankensteilheit des Signals angepasst werden, die geforderten Zeiten kann man durch Variation der Widerstände R3 und R7 einstellen. R1/C2 müssen eventuell an das Eingangssignal angepasst werden. U3 muss bei Single Supply auch negative Eingangsspannungen verwerten können.
Frank B. schrieb: > Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf. Hier ein komplett digitaler ;-)
1 | 5V |
2 | | 100n |
3 | o---||---| |
4 | | |
5 | .---. |
6 | In ------| |----- Out |
7 | '---' |
8 | | |
9 | --- |
Ich finde es gut, dass es solche uC wie den Tiny9 für knapp 50 Cent gibt. Deshalb liegen auch immer ein paar im Schrank... M.A. S. schrieb: > Für jemanden, der Firm in µC-Programmierung ist und für mindestens einen > Typ eine Entwicklungsumgebung auf dem Rechner hat und deren Bedienung > beherrscht, ist die µC-Variante der kürzeste Weg. Für jemanden, der sich > evtl. in µC-Technik erst einarbeiten müsste, ist er es definitiv nicht. Es lohnt sich aber. Hier das wesentliche Programm zur Lösung der Aufgabe. Es braucht nichtmal irgendeine Variable:
1 | // ein paar Zeilen Header einbinden
|
2 | #define EineBestimmteZeit 1000
|
3 | main () { |
4 | // ein wenig Vorgetüdel mit Initialiserung der Pins
|
5 | for(;;) { |
6 | while (!(PINB&1)) {}; // warten, bis High am Eingang PB0 |
7 | delay_ms(10000); // erstmal 10 Sekunden abwarten |
8 | if (PINB&1) { // nach 10s noch immer High am Eingang? |
9 | while (PINB&1) {}; // Ja: warten bis Eingang PB0 low |
10 | PPORTB|=2; // dann PB1 high setzen |
11 | delay_ms(EineBestimmteZeit); // ...abwarten.... |
12 | PPORTB&=~2; // dann PB1 wieder low setzen |
13 | }
|
14 | }
|
15 | }
|
Der TO hat schon einen weiteren Thread gestartet, wo er sich Infos zum Einstieg in die µC-Welt holt. Lothar M. schrieb: > Ich finde es gut, dass es solche uC wie den Tiny9 für knapp 50 Cent > gibt. Ja, aber SMD - passt nicht immer im Hobbybereich, und für das TPI-Interface müsste ich auch aufrüsten. Und bei den einschlägigen Händlern sind sie eher rar. Gut, Conrad hat ihn, aber im QFN und auch nicht für 50ct. Soweit weg ist ein Tiny13A dann auch wieder nicht, im SO-8 bei Reichelt für 53ct, im DIL-8 für 71ct. Dein Programm wäre dasselbe, bis vielleicht auf das _delay_ms(10000) :-).
HildeK schrieb: > TPI-Interface müsste ich auch aufrüsten. Hi, nur zur Info: AVRStudio4.18SP1.exe (28.765 KBytes) soll statt ISP und HV auch TPI Programmiermodus unterstützen beim "oldschool" STK500-Board. https://www.microchip.com/mplab/avr-support/avr-and-sam-downloads-archive Die Install-Datei (nicht Release Notes!) ist: AVR Studio V4.18.SP.700 ohne Gewähr. Muss es erst noch ausprobieren. ciao gustav
:
Bearbeitet durch User
Mir fiele da noch eine Lösung mit Heizelementen und Bimetall-Schaltern ein. Interesse?
Auch hier gibt es eine Lösung mit nur einem Transistor, zwei Dioden, zwei Widerständen und einem Elko vor der Basis. Ich würde das gerne mal aufmalen, bin aber gerade unterwegs.
Karl B. schrieb: > AVRStudio4.18SP1.exe (28.765 KBytes) > > soll statt ISP und HV auch TPI Programmiermodus unterstützen beim > "oldschool" STK500-Board. Danke - das war mir neu.
Sach mal, Peter L., vor 3,5 Jahren haben wir dir doch schonmal genau so eine Schaltung entworfen. Was ist denn damit? Beitrag "Wer kann mir bitte folgende Zeitschaltung entwerfen?"
Lothar M. schrieb: > Frank B. schrieb: >> Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf. > Hier ein komplett digitaler ;-) >
1 | > 5V |
2 | > | 100n |
3 | > o---||---| |
4 | > | |
5 | > .---. |
6 | > In ------| |----- Out |
7 | > '---' |
8 | > | |
9 | > --- |
10 | > |
Kleine Übungen halten auch fit, insofern war es für mich eine willkommene Gelegenheit, mal wieder etwas mit analoger Signalkonditionierung zu spielen ;-) Die Lösung mit dem AtTiny ist pragmatisch und simpel, aber mir persönlich würde da die Herausforderung fehlen. Die Hauptsache ist doch, dass es am Ende Spaß macht.
Die Frage ist, wie soll sich die Schaltung bei beliebiger Pulsfolge verhalten, z.B. 2 Pulse a 5s mit 2s Pause. Die 4538 Schaltung würde dann fälschlich ein Signal ausgeben. Mit einer MC-Lösung ist sowas leicht abzufangen.
Da Ihr hier nun doch eine µC-Lösung diskutiert hier mein Senf: Lothar M. schrieb: > M.A. S. schrieb: >> Für jemanden, der Firm in µC-Programmierung ist und für mindestens einen >> Typ eine Entwicklungsumgebung auf dem Rechner hat und deren Bedienung >> beherrscht, ist die µC-Variante der kürzeste Weg. Für jemanden, der sich >> evtl. in µC-Technik erst einarbeiten müsste, ist er es definitiv nicht. > Es lohnt sich aber. MIR musst Du das nicht erklären. Lothar M. schrieb: > Frank B. schrieb: >> Der Spielerei halber hier mal ein komplett analoger Schaltungsentwurf. > Hier ein komplett digitaler ;-) Würde ICH auch so angehen. Meine Argumente für eine µC-Lösung: 1) Wie im obigen Vorschlag zu sehen: minimaler Bauteilaufwand => minimaler Platzbedarf und minimale Kosten. 2) Peter D. schrieb: > Die Frage ist, wie soll sich die Schaltung bei beliebiger Pulsfolge > verhalten, z.B. 2 Pulse a 5s mit 2s Pause. > Die 4538 Schaltung würde dann fälschlich ein Signal ausgeben. > > Mit einer MC-Lösung ist sowas leicht abzufangen. 3) Genauigkeit des Timings. Mit einem analogen Ansatz ist man auf Gedeih und Verderb den Bauteiltoleranzen sowie Temperaturabhängigkeiten und Alterungen ausgeliefert. Bei einem µC hat man einen integrieten RC-Generator, der relativ eng toleriert ist (heute oft einstelliger %-Bereich). Reicht das nicht, kann man mit dem Aufwand dreier zusätzlicher Bauteile einen Quarz zur Takterzeugung verwenden und ist (trotz Alterung etc.) langzeitstabil um Größenordnungen genauer. 4) Flexibilität: Sollten sich die Anforderungen an das Verhalten der Schaltung ändern, kann man dies leicht über die Software und durch Umprogrammieren der vorhandenen Schaltung erreichen, ohne Hardwaremodifikation oder -Neubau. Meiner Meinung nach sollte man die Hauptdirektive im Hobbybereich nicht vergessen: Frank B. schrieb: > Die Hauptsache ist doch, > dass es am Ende Spaß macht. Und da gilt: Es ist Geschmackssache!
:
Bearbeitet durch User
Gebhard R. schrieb: > 1.) Ich brauch eine Entwicklungsumgebung für den uC > 2.) Ich muss das uC Datenblatt/Handbuch lesen und verstehen > 3.) Ich muss das Programm bei jedem Exemplar downloaden, das kostet Zeit > und einen Stecker. Und die Montage des Ganzen kostet einen Schraubenzieher und mehr an Sekunden, als zum Programmieren gebraucht wird. Und die analoge Lösung kostet deutlich mehr Bauteile und ist anfälliger. Junge, ich hatte sowas in meiner Jugendzeit durch, wo ich nach Lösungen für die Belichtungszeit-Steuerung in meiner damaligen Hobby-Dunkelkammer gesucht hatte. Damals hatte ich mir nicht von Mikrocontrollern träumen lassen, sondern notgedrungen sowas rein analog erledigen müssen. Die Krux dabei ist die lange Zeit von 11 Sekunden, die man mit Präzision analog erzeugen muß. Die einzige Alternative wäre Quarz oder Keramik +Zähler +Vergleicher - und das ist sachlich weitaus aufwendiger, als jede simple µC-Lösung. Und du brauchst auch keine Entwicklungsumgebung für nen µC, sondern im billigsten Fall Notepad, nen Assembler und ein Brennprogramm. Und das Brennen kostet Zeit.. ja worüber reden wir hier? Ich sag's dir: über 10 Sekunden, wenn's hoch kommt. Da dauert das Anschrauben der LP im Gehäuse oder das Herausholen der LP aus der Transportschachtel deutlich länger. Einen Stecker braucht es nicht, da reichen auch ein paar Testpads auf der LP aus. Tja, das offenbar für dich Schwierigste: Du mußt das Datenblatt lesen UND verstehen. Ich schätze mal, genau das ist der eigentliche Knackpunkt. M.A. S. schrieb: > Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist > diese Diskussion in diesem Thread OT. So nicht, mein Lieber. Wenn unsereiner sieht, daß ein TO sich in eine falsche Richtung verrannt hat, dann ist es tatsächlich das absolut Hilfsreichste, ihm eine bessere Richtung aufzuzeigen. So herum. W.S.
W.S. schrieb: > M.A. S. schrieb: >> Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist >> diese Diskussion in diesem Thread OT. > > So nicht, mein Lieber. Wenn unsereiner sieht, daß ein TO sich in eine > falsche Richtung verrannt hat, dann ist es tatsächlich das absolut > Hilfsreichste, ihm eine bessere Richtung aufzuzeigen. > > So herum. Genau: "TO, hab Dich nicht so, Du willst es doch auch!" :) Das erinnert mich an ein Schild, das im Hause unseres EMV-Gurus hängt: "Wir haben alles, was Sie brauchen. Was wir nicht haben, brauchen Sie auch nicht!" Nee, ernsthaft: Auch ich bin (ich glaub, ich schrieb das weiter oben unmissverständlich) durchaus der Meinung, eine µC-Lösung ist die technisch beste. Aus meiner Sicht gibt es nur zwei gute Gründe, die dagegen sprechen (auch das schrieb ich bereits, noch weiter oben): 1. Falls kein Knowhow auf dem Gebiet µC besteht und man sich bei Null beginnend einarbeiten müsste. 2. Falls es dem betreffenden einfach mehr Spaß macht, einen anderen Weg zu gehen, selbst dann, wenn nur eine irgendwie funktionierende aber nicht optimale Lösung herauskäme.
:
Bearbeitet durch User
Peter D. schrieb: > Die Frage ist, wie soll sich die Schaltung bei beliebiger Pulsfolge > verhalten, z.B. 2 Pulse a 5s mit 2s Pause. > Die 4538 Schaltung würde dann fälschlich ein Signal ausgeben. > > Mit einer MC-Lösung ist sowas leicht abzufangen. Ja, das Problem mit der 4538-Schaltung ist so und wird weitere HW erfordern, wenn man das berücksichtigen will. Die Anforderung sprach von einem Puls, entweder kürzer oder länger als 10s. Wird der über eine Taste geliefert, kann das leicht passieren. Wird er anders generiert, kann es ja sein, dass es die Unterbrechung gar nicht gibt. Details wurden nicht genannt. Ich würde einen kleinen Tiny nehmen, der TO fragte aber nach einer Lösung ohne µC. Natürlich darf man ihm gerne einen solchen vorschlagen und wie ein weiterer Thread von ihm zeigt, ist er auch daran interessiert. W.S. schrieb: > M.A. S. schrieb: >> Da der TO ausdrücklich nach einer nicht-µC basierten Lösung fragt, ist >> diese Diskussion in diesem Thread OT. > > So nicht, mein Lieber. Wenn unsereiner sieht, daß ein TO sich in eine > falsche Richtung verrannt hat, dann ist es tatsächlich das absolut > Hilfsreichste, ihm eine bessere Richtung aufzuzeigen. > > So herum. Ja. Er wollte eine µC-freie Lösung sehen, man darf aber gleichzeitig den Aufwand und die Beschränkungen gegenüber eine µC-Lösung aufzeigen. Auch die Nachteile beider Varianten. Das ist hier ausreichend geschehen, der TO kann sich ein Bild machen.
HildeK schrieb: > Er wollte eine µC-freie Lösung sehen, man darf aber gleichzeitig den > Aufwand und die Beschränkungen gegenüber eine µC-Lösung aufzeigen. Auch > die Nachteile beider Varianten. > Das ist hier ausreichend geschehen, der TO kann sich ein Bild machen. Das stimmt.
Wie gesagt, eine passende Schaltung wurde bereits vor Jahren unter genau der gleichen Aufgabenstellung bereits für genau diesen TO entworfen. Muss man also eigentlich nicht nochmal machen, ausser es gibt einen triftigen Grund, der bislang nicht genannt wurde. Ursprünglicher Thread: Beitrag "Wer kann mir bitte folgende Zeitschaltung entwerfen?"
:
Bearbeitet durch User
M.A. S. schrieb: > Aus meiner Sicht gibt es nur zwei gute Gründe, die dagegen sprechen ... > 1. Falls kein Knowhow auf dem Gebiet µC besteht und man sich bei Null > beginnend einarbeiten müsste. ... > 2. Falls es dem betreffenden einfach mehr Spaß macht, einen anderen Weg Nein, sowas kann man nicht ernstlich akzeptieren. Zu Punkt 1: Wer kein ausreichendes Knowhow hat, um beispielsweise das ABS seines Autos zu reparieren, sollte davon schlichtweg Abstand nehmen und sowas den Fachleuten überlassen. Alternative: selbst Fachmann werden, durch entsprechende Weiterbildung. Zu Punkt 2: Wer seinen Spaß hat, einen sachlich ungünstigen Weg zu beschreiten, der soll das verdammtnochmal dann auch tun - und zwar SELBST. Und nicht ein ganzes Forum dazu aufrufen wollen, ihm diesen Weg zu ebnen und fein säuberlich zu harken. W.S.
W.S. schrieb: > Zu Punkt 2: Wer seinen Spaß hat, einen sachlich ungünstigen Weg zu > beschreiten, der soll das verdammtnochmal dann auch tun - und zwar > SELBST. Und nicht ein ganzes Forum dazu aufrufen wollen, ihm diesen Weg > zu ebnen und fein säuberlich zu harken. > > W.S. Du brauchst Dich überhaupt nicht angesprochen oder belästigt zu fühlen, du brauchst die Anfrage nicht zu Ende zu lesen und du mußt erst recht nicht deine Zeit mit einer Antwort verschwenden. Niemand zwingt dich hier aktiv zu werden! Aber stell dir vor, es gibt (wie man sieht) auch andere Leute, denen das entwickeln einer reinen Hardwarelösung durchaus Spass macht. Und genau an diese ist die Anfrage des TO gerichtet. Also verdirb denen, die ihren Spass daran haben nicht die gute Laune. Du bist hier nicht der Aufpasser, der dazu berufen ist, Anderen die Unterhaltung über Themen zu verbieten, die Dir nicht genehm sind oder sinnvoll erscheinen!
Lothar M. schrieb:
1 | > while (!(PINB&1)) {}; // warten, bis High am Eingang PB0 |
2 | > delay_ms(10000); // erstmal 10 Sekunden abwarten |
3 | > if (PINB&1) { // nach 10s noch immer High am Eingang? |
Hier stimmt was nicht im code. Bei der if Abfrage steht nicht fest, ob der Impuls noch immer anliegt oder ob der Eingang zuvor(innerhalb der 10s) auch low war.
1 | while (!(PINB&1)) {}; |
2 | long tstart=millis(); |
3 | while (PINB&1) {}; |
4 | if ((millis()-tstart) >= 11000) { |
5 | //puls war min. 11s
|
6 | } else { |
7 | //puls war kürzer als 11s
|
8 | }
|
mfg Sektionschef
Peter L. schrieb: > Hier stimmt was nicht im code. > Bei der if Abfrage steht nicht fest, ob der Impuls noch immer anliegt > oder ob der Eingang zuvor(innerhalb der 10s) auch low war. Das war bisher auch nicht gefordert. Es ging nach meiner Auffassung nur um einen einzigen einzelnen Impuls, der in der Länge vermessen und entsprechend eine Reaktion ausgelöst werden sollte. Aber stimmt: mit ganz wenig Aufwand lässt sich das Programm universalisieren. > long tstart=millis(); Mal angenommen, ich hätte das nicht die Arduino-Umgebung, dann würde ich das so machen:
1 | // ein paar Zeilen Header einbinden
|
2 | #define EineBestimmteZeit 1000
|
3 | short t = 0; |
4 | main () { |
5 | // ein wenig Vorgetüdel mit Initialiserung der Pins
|
6 | for(;;) { |
7 | |
8 | while (!(PINB&1)) {} // warten, solange Low am Eingang PB0 |
9 | |
10 | t = 0; |
11 | while (PINB&1) { // warten solange High am Eingang PB0 |
12 | if (t<11000) t++; // Pulsdauer mitzählen und begrenzen |
13 | delay_ms(1); |
14 | }
|
15 | |
16 | if (cnt>=11000) { // Wenn Puls länger als 11 sec |
17 | PPORTB|=2; // dann PB1 high setzen |
18 | delay_ms(EineBestimmteZeit); // ...abwarten.... |
19 | PPORTB&=~2; // dann PB1 wieder low setzen |
20 | }
|
21 | |
22 | }
|
23 | }
|
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Mal angenommen, ich hätte das nicht die Arduino-Umgebung, dann würde ich > das so machen:... Laß mal. Programmieren ist offensichtlich auch nicht so sehr deine Stärke. Mach lieber ne gute Moderation. W.S.
Mich würde ja wirklich interessieren warum "Sektionschef" die identische Anfrage 3 Jahre später noch mal stellt. Hallo Peter L., kannst du darauf eine Antwort geben?
W.S. schrieb: > Lothar M. schrieb: >> Mal angenommen, ich hätte das nicht die Arduino-Umgebung, dann würde ich >> das so machen:... > > Laß mal. Programmieren ist offensichtlich auch nicht so sehr deine > Stärke. Mach lieber ne gute Moderation. > > W.S. Dein Beitrag ist herausragend & exzellent. Sollte sich alle auf dem µCNet als Vorbild für konstruktive Kritik nehmen.
W.S. schrieb: > Programmieren ist offensichtlich auch nicht so sehr deine Stärke. Siehst du ein Problem am generellen Ablauf oder stören dich ganz compilerlike nur ein paar kleine syntaktische Feinheiten wie fehlende Unterstriche oder ein, zwei zuviel eingestreute Buchstaben usw? Denn das hättest du mit den 16 Worten auch locker sagen können, statt bloß hohl daherzuschwallen und dich an persönlichen Attacken zu erfreuen...
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.