Wenn Du mit wDurchschnitt weiterarbeiten willst, nachdem die lSumme wieder verändert wird (neuer Meßzyklus) musst diese in eine eigene Word-Variable umspeichern. Mit jeder Änderung von lSumme wird...
Art: Beiträge; Benutzer: oe9vfj
Wenn Du mit wDurchschnitt weiterarbeiten willst, nachdem die lSumme wieder verändert wird (neuer Meßzyklus) musst diese in eine eigene Word-Variable umspeichern. Mit jeder Änderung von lSumme wird...
Ich denke, Rolf hat Recht. Zuerst werden die Variablen in den Typ der Zielvariable umgewandelt und bei LONG --> WORD, die LONG links beschnitten und damit bei Werten über 65535 verändert.
Bei...
Ich habe die Aufsummierung einer Long-Variable und Division durch 256 getestet und keinen Fehler gefunden.
Da müsste man eventuell Deinen verwendeten Code sehen, um hier weiterhelfen zu können.
...
In BASCOM-Inline-Assembler kann/muss man LByte und HByte verwenden, also z.B.:
Const c1 = &H1234
ldi r16, lbyte(c1)
ldi r17, hbyte(c1)
Hallo Hannes,
Die Funktion dieser Option ist/wäre so wie von Dir beschrieben, aber (noch) nicht implementiert.
Ich habe vor etwa 2 Jahren diese DCF77 Library geschrieben und auch diese...
Hier ein Vorschlag, wie man die Aufgabenstellung Zeit- und Code-sparend in ASM lösen könnte mit einem Beispiel zum Testen der Funktion.
Dim X1 as Byte, X2 as Byte ' Zum Testen
Declare...
Wie in der vorigen Antwort gesagt, wirst Du hier um eine Implementierung im Assembler nicht umhin kommen. Assembler-Code is relativ leicht in BASCOM einzubinden. In Deinem Fall würde ich zwei...
Die BASCOM Notation ist &HC2
Wenn Du es gezielt im Programm machen willst kannst Du
GOTO 0verwenden.
Das Zeichen * bedeutet, dass diese Zeile erst während der Compilierung mit dem Basic-Programm in Maschinen-Code übersetzt werden kann.
Diese Zeile kann bei der Kompilierung einer LIB (LIB --> LBX)...
Hallo Dirk,
UPDATE/UPDATETIME
Du hast recht, hier ist in der Hilfe etwas falsch vermerkt.
UPDATE = 1 ist stündliches Update und damit der Parameter UPDATETIME zwischen 0 und 59 zu setzen. Damit...
Vorerst wird nur Timer=1 unterstützt.
Laut MCSELEC ist für die anderen Timer ist noch eine Überarbeitung der DAT - Files notwendig.
Hallo Rolf,
ich habe mir die Parameter für die Signal-Abtastung angeschaut. Bei 40 Interrupts pro Sekunde ergibt sich bei 25mSec Zeit-Takt und dem Grenzwert von 6 die Grenze von 150mSec (6 *...
Hallo Rolf,
ich habe Dein Programm getestet und habe sowohl bei Timer1Sec = 0 als auch 1 eine funktionierende DCF77 Auswertung bekommen.
Übrigens: die Option SECTIC hat Mark schon in die am...
Hallo Rolf,
Das mit den unterschiedlichen Frequenzen für die Timer-Interrupts Timer1Sec = 0 oder 1 lässt sich erklären.
Um möglichst einen ganzzahligen Timer-Interrupt pro Sekunde bei vielen...
Hallo Rolf,
Beachte aber, dass die in SECTIC 'verbratene' Zeit deutlich unter der Zeit liegen sollte, die ein Timer-Tick braucht (Bei 40 Interrupts pro Sekunden sind das weniger als 25mSec)...
Hallo Ralf,
Ich hänge Dir eine neue Version der DCF77.LBX an mit welcher SECTIC funktionieren sollte. Die Konfiguration erfolgt aber nicht in der CONFIG - Zeile, sondern bis zur endgültigen...
Hallo Rolf,
Beginne mal mit der Grundkonfiguration:
CONFIG DCF77 = PinX.y, Timer=1, Debug = 1
und einem Ort mit einem sauberen DCF-Empfang um die Funktion zu testen. Der Parameter DEBUG...
Das Verhalten ist kein Bug, mit dem man "leben muss", sondern ergibt sich aus der Konzeption der Programmes. Das ganze besteht ja aus zwei Teilen:
- einer eigenständigen Soft-CLOCK
- einer...
Ob Du das Status-Bit 7 für Dich als Informationsquelle verwendest, bleibt Dir überlassen.
Im DCF-Signal wird die Zeit-Information für die nächste volle Minute übertragen. Daher ist die...
Mit dem Status-Bit 7 kann ich feststellen, ob die Soft-Clock schon einmal nach DCF77 gestellt wurde. Weiters kann ich dieses Bit jederzeit auf 0 zurücksetzen und zu jedem späteren Zeitpunkt wieder...
Hallo Peter,
Zu dem Status-Bit 7: Dieses Bit wird auf 1 gesetzt, wenn die SOFT-Clock vom DCF-Teil synchronisiert wird. Der Anwender kann dieses Bit jederzeit wieder auf 0 setzen (aber nur dieses...
Hallo Bertl,
Grundsätzlich ist die neue implementierte Funktion eine Interrupt-Routine, welche das an einem Input-Pin anliegende DCF77 Signal auswertet und damit eine Soft-Clock stellt...
Du darfst nicht die $lib "mcsbyte.lbx"
einbinden, wenn Du Integer ausgeben willst. Standardmäßig kann Print BYTE, WORD, INTEGER und LONG ausgeben. Sofern im Programm nur Bytes auszugeben sind, kann...
Man kann diesen Variablen Time$ und Date$ einfach den entsprechenden String zuweisen.
Dim TimeString as String * 8
Dim DateString as String * 8
TimeString = "20:40:10"
DateString =...