Hallo zusammen, komme beim programmieren von Time/Date/Timer des Butterfly unter Bascom nicht weiter. Der Time$, Date$ werden nicht aktualisiert ( bleiben auf 00:00:00 stehen. Deklarierung und Prog. hab ich auch mit den bei Bascom enthaltenen Beispielen versucht zum laufen zu bringen ... nix. Kann es am verwendeten Butterfly liegen? Danke für eure Antwort
Wie wärs mit ein bissl mehr Code? So lässt sich wenig erkenne wo der Fehler liegen könnte.
^^Also irgentwie muss Andreas Schwarz mal eine Doppelpost-Sperre einbauen. Sei es mit CRC oder was weiss ich.
Hallo zusammen, an ein bisschen Quältext solls nicht hängen. Ist eigentlich nur eine geringfügige Änderung eines Bsp.textes von Josef Franz Vögel im Bascom. $regfile = "M169DEF.DAT" ' Butterfly Config Clock = Soft Disable Interrupts 'configure the date format Config Date = Ymd , Separator = - ' ANSI-Format 'This sample does not have the clock started so interrupts are not enabled ' Enable Interrupts 'dim the used variables Dim Lvar1 As Long Dim Mday As Byte Dim Bweekday As Byte , Strweekday As String * 10 Dim Strdate As String * 8 Dim Strtime As String * 8 Dim Bsec As Byte , Bmin As Byte , Bhour As Byte Dim Bday As Byte , Bmonth As Byte , Byear As Byte Dim Lsecofday As Long Dim Wsysday As Word Dim Lsyssec As Long Dim Wdayofyear As Word Do ' Example 1 with internal RTC-Clock _sec = 12 : _min = 30 : _hour = 18 ' Load RTC-Clock for example - testing Lsecofday = Secofday() Print "Second of Day of " ; Time$ ; " is " ; Lsecofday Loop Mit diesem Code macht's im Simulator und im Butterfly keine fortlaufende Zeit. Gruß Sebastian
Ich das zwar kann zwar nicht Bascom, aber die Zeilen: Config Clock = Soft Disable Interrupts Deuten darauf hin, dass die Interrupts deaktiviert sind und nicht aktiviert werden. Ich sehe auch keine Interrupt-Routine (Tick-Tack)
OK, sind aber als Beispiele im Bascom dabei und sollten doch eigentlich funzen?! Der Butterfly hat auch ein 32.xxkhz Quarz für ne Uhr.
Klar sollte die funzen, aber ohne Interrupt-Routine passiert ja nichts. Es muss auf jeden fall folgendes rein: Config TimerXXX = Timer, Prescale= XX 'Konfiguriere TimerXXX Enable TimerXXX 'TimerXXX an On TimerXXX SprungXXX 'Dahin springen wenn Int. Enable Interrupts 'generell Interrupts zulassen SprungXXX: 'hier die Variablen hochtzählen oder so Return Mehr dazu hier: http://www.roboternetz.de/wissen/index.php/Bascom_und_Timer
Danke für die Info MasterFX. Bin davon ausgegangen, dass die Timer autark laufen, wie ich das von anderen Proz. kenne (CC1 / CC2-> ok Betrieb Sys. dahinter)und der Wert sich dann im Time$ bzw. Date$ wiederfinden. Das sollte dann bei den Beispielen aber auch mit dabeistehen, da ich mir vorstellen kann, dass andere Einsteiger beim nachvollziehen die gleichen Probleme haben. Für einen schnellen Programmablauf teile ich dann die interne 8Mhz Clock? Aber wozu dann der externe 32k Uhrenquarz?
Den externen Quarz kannst du natürlich auch verwenden. Damit bekommt man ziemlich genaue Uhren hin (wegen genaue Sekunde). Zudem kannst du den uC dann in den Sleep-Modus versetzten, so das er nur alle 500 oder 1000ms "aufwacht" und dadurch erheblich weniger Strom verbrauen, was für den Batteriebetrieb besonders interessant ist.
Sorry, Config Clock = Soft ; Disable Interrupts funktioniert anscheinend nur bei MCU`s mit interem RTC und demnach auch Time$ und Date$. Lt DB hat der 169er nicht. Das mit den Timer-Interrupt will beim 169er unter BASCOM nicht funzen. Stell ich mich zu blöd an. Im BASCOM-Simulator läuft folgendes Demo nur mit dem 2313 nicht aber mit dem 169er (auch nicht auf dem Butterfly in real) Der Timer läuft und läuft und trotzdem wird kein Interrupt ausgelöst. Bascompoblem? Lt DB muss er. $regfile = "2313def.dat" '$regfile = "m169def.dat" ' keine Chance $crystal = 8000000 'Configute the timer to use the clock divided by 1024 Config Timer0 = Timer , Prescale = 1024 'Define the ISR handler On Ovf0 Tim0_isr 'you may also use TIMER0 for OVF0, it is the same 'On Timer0 Tim0_isr ' dasselbe Enable Timer0 ' enable the timer interrupt Enable Interrupts 'allow interrupts to occur Do Print Timer0 'your program goes here Loop 'the following code is executed when the timer rolls over Tim0_isr: Print " *"; Return End
Hallo ! Ich benutze BASCOM. Aber damit die Uhrzeit "richtig" läuft muss doch der Attiny "logischerweise" immer mit Strom versorgt werden oder nicht ? Also so wie der BIOS mit seiner kleinen Batterie. MfG, Tugrul Ö.
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.