www.mikrocontroller.net

Forum: Projekte & Code BASCOM Uhr mit Butterfly


Autor: Sebastian Schönfeld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wärs mit ein bissl mehr Code? So lässt sich wenig erkenne wo der
Fehler liegen könnte.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^^Also irgentwie muss Andreas Schwarz mal eine Doppelpost-Sperre
einbauen. Sei es mit CRC oder was weiss ich.

Autor: Sebastian Schönfeld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vermisse nur ich hier das Tick Tack  ?????

Autor: MasterFX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Sebastian Schönfeld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sebastian Schönfeld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sebastian Schönfeld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Tugrul Ö. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 Ö.

Autor: Tugrul Ö. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verdammt !! Tut mir leid. Ich war im falschem Thread !!!!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.