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
Hi was heißt abgeschaltet werden? Komplett von der Stromversorgung getrennt? Matthias
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
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
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
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)
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
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.