abschalten einer Schtg nach 1 min in BASCOM

Gast #37070
Lesenswert?
• ▲
▼
Hallo
da ich schon bei meiner letzten Frage hier eine Kompetente Antwort
bekommen habe versuche ich es nochmal.
Ich beschäftige mich gerade seit 2 Wochen mit einem µC dem ATMEGA8 und
BASCOM nun würde ich gerne folgende Aufgabe meistern:
Eine Schaltung so abgeschaltet werden (Ein Ausgang auf 0) wenn am
Eingang des µC kein Signal mehr anliegt. Irgendwie hab ich bis jetzt in
der Hilfe nichts dazu gefunden und ich bin schon ein wenig ungeduldig .
Es wäre nett wenn mir jemand kurz ein Stichwort geben könnte .
Im voraus  VIELEN DANK
jacek
Gast #37072
Lesenswert?
• ▲
▼
Du mußt den Eingang regelmäßig überprüfen (z.B. per Interrupt) und wenn
lange genug kein Signal mehr anlag den Ausgang auf 0 setzen.

Für eine konkretere Antwort solltest Du mehr Details nennen, z.B.
welcher Art Dein Eingangssignal ist, wie schnell usw.

Markus
Gast #37073
Lesenswert?
• ▲
▼
abschalten bedeutet das ich einfach an einem Pin eine Veränderung
brauche.
Das anliegende Signal kommt von einem Hall Sensor und misst eine
Drehzahl diese liegt in normalfall zwischen 1000 - 10000 U/min . Wenn
die Drehzahl eine Minutelang 0 ist soll ein Pin auf 0 gehen und im
Endeffekt über einen Transistor die Nachfolgende Schaltung abschalten.
Ich weiß nur nicht mit was für einem Befehl bzw wie ich eine
Zeitmessung initialisieren kann , ich hab mir Syssecelapsed angeschaut
komm da aber auch nicht weiter .
Ich hoffe jetzt könnt ihr mehr mit meiner Frage anfangen auf alle Fälle
Vielen Dank für eure Mühe

jacek
Gast #37074
Lesenswert?
• ▲
▼
Du könntest einfach einen Timer mit 400Hz laufen lassen und
mitprotokollieren, vor wie vielen Interrupts die letzte Änderung kam.
Ist das mehr als 400*60=24000 Interrupts her, dann ist der Motor aus.

Markus
Gast #37075
Lesenswert?
• ▲
▼
Timer einrichten, der nach 1min den 'Pin' auf 0 schaltet. Damit er das
nicht vorzeitig tut, muss bei jedem Hall-Sensorsignal dieser
zurückgesetzt werden.
Statt dem 16Bit-Timer kannst Du auch den Watchdog nehmen - ist für
diesen Anwendungsfall evt. sogar noch besser. Lässt sich auch schneller
zurücksetzten. (1Taktzyklus)
Gast #37077
Lesenswert?
• ▲
▼
Hallo Jacek:
Z.B. timer1 in Bascom

$regfile = "2313def.dat"
Dim A As integer
Config Timer1 = Timer , Prescale = 64
On Timer1 Timer_isr         REM Bei jedem Timer1-überlauf.....
Enable Timer1
Enable Interrupts
Do
Rem Eine endlosschleife
Loop
Timer_isr:
Incr A           REM.......wird a um eins erhöht(a=a+1)
Print A
Return REM  Erzeugt ein Reti=Return from Interrupt


Mehr Infos in der Onlinehilfe von BASCOM AVR

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.