Benötige euere Hilfe

Gast #1139228
Lesenswert?
• ▲
▼
Hallo zusammen,
könnt Ihr mir helfen dieses zu realisieren.
Besitze einen ATMega128 und möchte am Eingang einen Reedkontakt 
anschließen. Wenn dieser betätigt wird, soll der Ausgang für eine genau 
definierte Zeit geschlossen werden z.B. 100ms, egal wie lange der 
Reedkontakt am Eingang geschlossen ist. Optimal wäre auch noch wenn die 
Zeit eingestellt werden könnte vom Betätigen des Reedkontakt bis zum 
aktivieren des Ausgangs. Z.B. ich betätige den Reedkontakt am Eingang 
dann soll eine Verzögerung von 20ms stattfinden bis der Ausgang dann für 
100ms aktiv wird.

Vielen Dank
Gast #1139237
Lesenswert?
• ▲
▼
hierfür gibts natürlich mehrere optionen

(bitte mich nicht zu zerfleischen wenn diese nicht die perfekteste ist 
:))

mit dem kontakt löst du einen interrupt aus - dieser "schließt" den 
ausgang und startet einen Timer. Der Timer erzeugt nach der 
eingestellten Zeit (zB 100ms) einen Überlauf und öffnet den ausgang 
wieder.

hast du einen schaltplan dazu?
Gast #1139257
Lesenswert?
• ▲
▼
Danke
Am liebsten wäre mir, dass nach Betätigen des Eingangs der Ausgang 
zeitverzögert (20ms) aktiviert/geschlossen wird und und nach einer 
bestimmten Zeit (100ms) wieder abfällt/öffnet. Hätte jemand eine Idee, 
wie hiefür ein Code aussehen könnte. Wäre euch sehr dankbar.
Gast #1139291
Lesenswert?
• ▲
▼
Ein ATmega128 ist glaube ich ein bisschen oversized für das Projekt, 
wenn du den grad mal so liegen hast ok aber wenn du noch auf einen 
kleineren Typ umsteigen kannst solltest du dies tun, vorausgesetzt es 
bleibt bei der oben genannten Funktion!!!!
#1139394
Lesenswert?
• ▲
▼
hhmmmm wrote:
> Ein ATmega128 ist glaube ich ein bisschen oversized für das Projekt,

"ein bischen" ist noch stark untertrieben.
Ein ATtiny13 reicht dicke.

Mechanischer Kontakt und externer Interrupt vertragen sich nicht 
(prellen).
Daher nen Timerinterrupt mit 4-fach Abtastung nehmen.
Bei 6ms Abtastintervall hast Du auch gleich 18..24ms Verzögerung.


Peter
Gast #1139706
Lesenswert?
• ▲
▼
ja ich weiß dass ein ATmega128 zu oversized ist. Später werde ich einen 
ATiny13 nehmen.
Auf meinem Testboard ist jedoch ein 128er. Zum testen ideal. Das mit dem 
entprellen hätte ich mit eingebunden. Leider sind meine 
Programmierkenntnisse nicht so gut. Vielleicht kann mir jemand von euch 
helfen einen Code zu schreiben. Wenn wir also den Kontakt entprellen 
dann ist eine Verzögerung eh nicht mehr notwendig. Jetzt bräuchte ich 
nur noch, dass der Ausgang verzögert aktiviert wird. Zudem darf der 
Ausgang auch nicht erneut aktiviert werden, wenn der Eingang noch 
geschlossen ist. Z.B. ich betätige den Eingang 1 Sek. dann darf der 
Ausgang aber trotzdem bloß 100ms geschlossen sein. Wenn der Eingang dann 
abgefallen ist, ist auch der Ausgang = 0. Erst wenn der Eingang dann 
wieder erneut betätigt wird soll der Ausgang = 1 sein.
Wäre sehr dankbar, wenn jemand von euch hierzu einen Code für Bascom 
schreiben könnte und mich unterstützen könnte.
Danke
Gruß Markus
Gast #1141328
Lesenswert?
• ▲
▼
Wenn es auf einem ATTiny13 laufen soll ist es nicht sinnvoll
das auf einem Mega128 zu Programmieren.
Da es sich anbietet einen Timer zu verwenden und der 13'er nur
einen mit 8 Bit hat der 128'er jedoch 8 und 16 Bit-Timer besitzt
ist das Programm nich ohne weiteres übertragbar.

Was spricht gegen einen eigenen Aufbau mit ATTiny13. Den gibt es
auch im DIL-Gehäuse.

gruß hans
Gast #1141371
Lesenswert?
• ▲
▼
Ja ist kein Problem, ist in kurzer zeit aufgebaut. Ich bin da flexibel. 
Dachte nur man könnte das Prog. auf dem 128 Testen. Macht aber nix ich 
kann den tiny auch ohne Probleme anschließen.
Wär super Danke

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.