Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe beim Quellecode
Hallo!
ich möchte eine kleine schaltung aufbauen, die mir jede 24 Stunden für 10 minuten einen Hihg-signal ausgibt.
also einschalten, 10 minuten hipg-signal, auschalten, 23 Stunden und 50 minuten warten, einschalten, 10 minuten warten, auschalten...
ich könnte das selbst mit dem wait Befehl alles machen, aber ich möchte noch eine LED zur kontrolle haben, die jede 10 sekunden aufblinken sollte. Damit ich sehe, dass die schaltung überhaupt noch läuft.
es wird ein AtTiny2313 verwendet.
kann mit einer vielleicht mit dem Quellcode helfen?
Danke
peterfido
13.11.2007, 18:00
$regfile = "ATtiny2313.DAT"
$crystal = 1000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config Portb.2 = Output 'LED
Config Portb.3 = Output 'Ausgang
Dim Zeit As Long
Dim Zeitk As Long
Dim Erg As Long
Zeitk = 86400 'Sekunden für 24 Stunden
Zeit = 86400
Set Portb.2
Set Portb.3
Do
Wait 1
Zeit = Zeit - 1
If Zeit = 85800 Then '10 Minuten
Reset Portb.3
End If
If Zeit = 0 Then
Zeit = Zeitk
Set Portb.3
End If
Erg = Zeit Mod 10
If Erg = 0 Then
Set Portb.2
Else
Reset Portb.2
End If
Loop
End
Wow, danke schön! :))))))))))))))
Wow, danke schön! :))))))))))))))
Aber erwarte nicht dass dieses Programm sonderlich genau geht.
Hier bräuchte man schon eine Synchronisierung über eine RTC oder noch besser über ein DCF77-Signal.
Das jetzige Programm geht pro Tag sicherlich mehrere Minuten vor oder nach.
Wow, danke schön! :))))))))))))))
Das jetzige Programm geht pro Tag sicherlich mehrere Minuten vor oder nach.
auch mit dem Quarz?
robodriver
14.11.2007, 13:23
Ja, auch mit dem quarz wird es ungenau laufen.
Das liegt aer hauptsächlich daran, das BASCOM eine "ungenaue" sprache ist.
Um es ganz genau hin zu bekommen müsste man schon auf Assembler umsteigen.
PS: Wait 1 = 1 Sekunde, aber alle anderen folgenden Befehle brauchen auch nochmal ihre Zeit und je nach IF-Bedinung manchmal länger und manchmal kürzer.
Im Idealfall dauert hier ein Schleifen-durchlauf etwa 1,00001 Sekunden das klingt jetzt nicht weit daneben, aber nach 24 Stunden ergeben die 0,00001 Sekunden Abweichung schon 0,846 Sekunden...
Also pro Tag ungefähr eine Sekunde... Das könnte man in BASCOM noch etwas reduzieren, aber ganz genau bekommt man das nur in Asembler hin.
Gruß Robodriver
stefan_Z
14.11.2007, 15:12
Oder du nutzt einen Uhrenquarz und die Uhrenfunktionen von Bascom - komplizierter aber auch genauer (je nach Quarz-Genauigkeit)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.