Dimmen, Schalten und Wolkensimmulation

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

Antworten
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mo, 08.03.10, 16:48

Hi Borax,

danke für deine Erklärung zum Thema Timer einstellen!
(der Countdown von 1:25 ist ein bissle zu früh fertig, so ca 4sec.)

Zum Thema DCF kann ich nix neues oder Besserung berichten. Es ist alles beim alten: entweder die Minute schaltet bei 28sec um, oder wenn ich die "Time$"-Funktion nehm dann läuft die Zeit ca 2sec zu schnell!

grüßle
mario
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Mo, 08.03.10, 17:06

..der Countdown von 1:25 ist ein bissle zu früh fertig, so ca 4sec
Ist das 'linear' (also nach ca. 1 Minute schon um 2-3 Sekunden zu schnell) oder schaltet er einfach 4 Sek zu früh ab (also von Anzeige 00:04 auf 00:00)?
Wegen DCF...
Bitte neues Log erstellen (mind. 10 Minuten!)

P.S. Schon komisch... Sowohl der Countdown-Timer als auch der DCF Timer laufen zu schnell :?:
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mo, 08.03.10, 18:00

Der Countdown läuft allgemein zu schnell, schaltet bei eingestellter 1:00min zwischen 2-3sec früher ab!

Kann es dann sein dass mit den µC irgendwas nicht in Ordnung ist? Eine Vermutung von mir.
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Mo, 08.03.10, 23:49

Hast Du das alles mit nur einem µC getestet? Könnte schon sein, dass dessen interner Oszillator ein wenig 'daneben' läuft. Ggf. mal mit 16Mhz Quarz (Pollin Board) versuchen (dann $crystal=... auf 16000000 ändern, den Timer Startwert auf 3036 ändern und mit Ponyprog die Fuses entsprechend setzen). Wenn es dann immer noch zu schnell läuft, hab ich auch keine Idee mehr...
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Di, 09.03.10, 02:25

Hi,
nein !

Ich habe heute auch schon daran gedacht einen zweiten µC zu testen.
Da habe ich genau das gleiche Problem, beide Prog's(DCF + Timer) laufen eigentlich zu schnell!

Habe bis eben getestet! Nur die 16MHz noch nicht.

Das bei mir auf dem Test-Board irgendetwas kaputt ist :?:

gute nacht
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Di, 09.03.10, 14:05

Das bei mir auf dem Test-Board irgendetwas kaputt ist
Glaube ich eher nicht. Der interne Oszillator hat problemlos 5% Abweichung von der vorgegebenen Frequenz von 8MHz (und das auch noch Betriebsspannungs- und Temperaturabhängig - siehe Datenblatt Seite 270 Fig. 170: Oscillator Frequency vs. Temperature). Da würde ich nicht allzu viel drauf geben. Dafür gibt es Quarze. Damit sollten die Abweichungen vom Takt (Quarzfrequenz) weit unterhalb von 0.1% liegen. Wenn Du für Deinen Belichtungstimer keinen Quarz verwenden willst, dann reicht auch eine stabile Betriebsspannung (7805 o.ä.), halbwegs gleich bleibende Betriebstemperatur (25°+/-5°) und ein wenig Nachkalibrieren am Timer-Startwert. Also Schaltung fertig aufbauen (ATMega mit Fassung einbauen), Timer z.B. exakt 10 Minuten laufen lassen und Differenz zur 'realen' Laufzeit in % berechnen. Mit dieser prozentualen Abweichung den Timer Startwert korrigieren:
Theoretisch: Zielzeit: 1 Sekunde; dafür erforderliche Timertakte: 1/0,000032 = 31250; Überlauf bei 65536 => der Timer muss mit dem Startwert 65536 - 31250 = 34286 starten
Abweichung z.B. 5% =>
Ein Timertakt ist nicht 0,000032 Sekunden sondern 5% weniger also 0,0000304 Sekunden. Oben eingesetzt: 1/0,0000304 = 32895 ; Überlauf bei 65536 => der Timer muss mit dem Startwert 65536 - 32895 = 32641 starten
Programm anpassen, Chip neu programmieren und wieder testen.
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 10.03.10, 15:08

Hallo
beim Timer-Prog bin ich jetzt

Code: Alles auswählen

 Timer1 = 32800                                            ' 34286     
bei diesem Wert angekommen, und es kommt meine anderen Stopp-Uhren sehr sehr Nahe.

Aber ich konnte nur mit 4:00min testen, weil ich keine andere Zeiten über 4:00 einszellen kann.

gruß

Ps: kannst du einen blick auf dieses
viewtopic.php?p=115178#p115178
werfen, da will keiner antworten.
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 10.03.10, 15:14

Hallo AlexK;

lebst du noch, Hast dich still und heimlich ausgeklingt hier!?
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Mi, 10.03.10, 15:50

Aber ich konnte nur mit 4:00min testen, weil ich keine andere Zeiten über 4:00 einszellen kann.
Warum? Ich hab es eigentlich so in geplant, dass Zeiten bis 59:59 (also fast eine Stunde) möglich sind... Wenn das nicht geht, was passiert genau wenn Du versuchst mehr als 4 Minuten einzustellen?
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 10.03.10, 17:41

Also wenn ich jetzt zum Beispiel 5:00min einstelle dann kommt nachher in der Anzeige 0:44

Wie und was hast du damit gemeint:
In der Zeile soll das gar nicht angezeigt werden, sondern ein paar Zeilen weiter oben:

Code: Alles auswählen

If Timeron = 1 Then
  If Disptime = 1 Then
      Disptime = 0
      Locate 2 , 1
      Lcd "Restzeit: " ; Formatzeit(runtime) ; " Min:Sek"
  End If
Wo sollte das denn hin verschoben werden?
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 10.03.10, 17:50

Habe jetzt noch mal getestet: wenn ich 4:15 einstelle funktioniert es noch. Bei einstellen von 4:16 ist die anzeige nachher 00:00
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Mi, 10.03.10, 18:23

Klingt irgendwie nach Typisierungsproblem... Die Zeit wird ja in den Word-Variablen Settime und Runtime gespeichert.
Zu Anzeigezwecken wird daraus Minute:Sekunde (Byte Variable: Setmin und Setsek) berechnet:
Setmin = Settime \ 60
Setsek = Settime Mod 60
Und nach ggf. Änderung von Setmin oder Setsek wieder Settime zusammengesetzt:
Settime = Setmin * 60
Settime = Settime + Setsek

Ich befürchte jetzt, dass Bascom hier bei Settime = Setmin * 60 die Rechnung fälschlicherweise mit der Typisierung Byte (ausgehend von der Byte Variable Setmin) durchführt und daher alle Ergebnisse > 256 (5*60=...) verwirft, weil sie nicht mehr in ein Byte passen. Ähnliches gilt an anderen Stellen im Code.

Weil wir hier aber keine Platzprobleme haben, einfach überall auf Word-Variablen gehen, dann sollte das Problem 'verschwinden'.
Also das alles ändern:
$lib "mcsbyte.lbx" <- Löschen oder auskommentieren
Dim Setmin As Word <- Ändern von Byte auf Word
Dim Setsek As Word <- Ändern von Byte auf Word
und ganz unten im Code:
Local Bmin As Word <- Ändern von Byte auf Word
Local Bsek As Word <- Ändern von Byte auf Word
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 10.03.10, 21:06

Jetzt habe ich beim compilieren Haufen Fehler: Label not found[_PRINTWORD ] , in File: C:\.......
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 10.03.10, 21:30

Sorry,
hatte den vergessen

Code: Alles auswählen

$lib "mcsbyte.lbx" <- Löschen oder auskommentieren
 
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 10.03.10, 23:36

Hi Borax,

habe jetzt den 10min Timer machen können, und habe eine Abweichung von ca. 1sek auf die 10min.
Das ding wäre damit erledigt!
DANKE für deine Unterstützung.

grüßle
AlexK2508
Mega-User
Mega-User
Beiträge: 100
Registriert: Do, 26.11.09, 22:17
Wohnort: Thüringen

Di, 16.03.10, 17:41

Jup bin noch am leben muss das Projekt leider noch ein wenig ruhen lassen , zur zeit muss ich die Prioritäten ein wenig anders setzen . Nach 10-12 Stunden auf Arbeit will die Familie noch was von mir hoffe das ändert sich bald wieder .
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 17.03.10, 01:29

Hallo,

OK, das kann ich verstehen Alex. Habe auch Kinder, leben aber schon länger bei der Mutter! Ich habe damit kein Problem. Bei mir steht im Moment alles auf den Kopf. Stehe kurz vor einem Umzug, muß nur noch die neue Wohnung renovieren! Also nicht wundern, wenn von mir nix mehr kommt!
Ich hoffe nur das es mit dem neuen DSL-Anschluß alles klappt und ab nächsten Monat funktioniert.

Grüßle
melde mich wieder
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Do, 22.04.10, 20:40

Hallo,

bin jetzt endlich in meiner neuen Bude, aber noch nicht ganz fertig. und schon steht wieder eine kleine reise für zwei wochen an.
bis ich wieder soweit bin etwas in dieser angelegenheit hier zu machen kann also noch bissle dauern.
bis demnächst
grüßle
mario
Benutzeravatar
TomTTiger
Ultra-User
Ultra-User
Beiträge: 547
Registriert: Mo, 23.06.08, 11:54
Wohnort: Weyerbusch / RP

Fr, 23.04.10, 11:58

Hallo :-)

habt ihr das mal mit dem OSCCAL Wert versucht einzustellen?
Damit wird der interne Oszillator auf die Taktfrequenz kalibriert.....

Den Osccal Wert kann mit AVRStudio ausgelesen werden, ich weiß nicht, ob Ponyprog das auch kann....
Damit bekommst du auf jeden Fall mal nen sauber kalibrierten Takt...
Standartmäßig beim Reset liest der ATMega8 ja den OSCCAL Wert für den 1 MHz Takt ein,
die anderen Werte müssten per Programmroutine ausgelesen und dem Register OSCCAL übergeben werden...

Sinnig wäre es aber, den Wert einmalig auszulesen, und im EEprom abzulegen, und diesen dann nach dem Start auszulesen und zu übergeben.

Code: Alles auswählen

ReadEEPROM, Wert, Adresse
' Bitte Adresse angeben, an welcher der Wert hinterlegt ist
OSCCAL = Wert
'Schreiben ins EEprom :
WriteEEProm Wert, Adresse


Weitergehende Infos (allerdings nicht zu BASCOM) : http://www.mikrocontroller.net/topic/27358
Nur mal so als Denkansatz 8)

Grüße
Tom
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Fr, 23.04.10, 13:36

Ist mir durchaus bekannt, funktioniert unter Bascom auch nicht viel anders (hab ich für eine Soft-RS232 Übertragung auch schon verwendet). Hier für diesen Fall war es aber einfacher das über den Timer-Startwert zu ändern. Man muss eine 'echte' Kalibrierung ja sinnvollerweise bei gegebener Betriebsspannung durchführen und zwei 7805 o.ä. haben auch nicht zwingend eine identische Ausgangsspannung (Min: 4.8V max. 5.2V). So gesehen bringt es nicht soo viel, den 'korrekten' Osccal Wert auszulesen und zu verwenden.
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Mi, 20.10.10, 19:11

Hallo @Borax,

nach langen hin und her bei mir, melde ich mich endlich hier zurück!
Meine Bastelsachen (den BLG-Timer und DCF-Modul) auch mal ausgepackt, und da war schon das nächste Problem war da. Hier kommt absolut keine DCF-Signale an in meiner Wohnung.
Da habe ich die letzten paar wochen und monate viel im internet gestöbert nach steuerrungen für mein vorhaben und da bin ich auf das hier gestossen
http://www.aquaristic.net/gembird-silve ... s-usb.html

Dabei würde eventuell nur noch ein problem bleiben, und zwar die Led-Grundbeleuchtung und die Nachtbeleuchtung(Mondlicht) Hoch-dimmen und bei Ausschaltzeit langsam ausgehen.

Gruß Mario
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Do, 21.10.10, 08:41

Also willst Du aufgeben...
Fehlender DCF-Empfang wäre IMHO noch kein Grund (man kann es ja auch über einen Standard-Quarz steuern), aber das musst Du wissen.
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Do, 21.10.10, 13:42

Hi,

aufgebebn direkt nicht, aber wird das nicht noch komplizierter für mich als laie auf dem gebiet!
Spass hat es mir bis jetzt auch gemacht, nur mit dem Bascom komm ich irgendwie nicht wirklich klar!
marfri
Mega-User
Mega-User
Beiträge: 209
Registriert: Do, 30.07.09, 22:00

Do, 21.10.10, 16:07

@Borax,

habe doch noch gute nachrichten, das DCF geht doch .
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Fr, 22.10.10, 08:51

Na also! :D
nur mit dem Bascom komm ich irgendwie nicht wirklich klar!
Was meinst Du damit? Funktioniert es nicht, oder hast Du nur Sorge, dass Du nicht in der Lage bist, fehlerfreie Programme zu schreiben? Falls letzteres:
1. Geht mir auch nicht anders... Ich hab vor einigen Wochen ein Programm zum Auswerten der CLIP (Telefonnummer) geschrieben. Vorlage war ein C-Programm aus dem I-Net. Bis das richtig rund gelaufen ist, hat es bestimmt vier Wochen gedauert. Es gilt was auch Sailor schon gesagt hat: So was sollte man als Herausforderung ansehen, und sich auf alle Fälle genügend Zeit dafür einräumen um die (garantiert auftretenden!) Probleme in Ruhe lösen zu können.
2. Du bekommst ja hier reichlich Hilfe. Gerade wenn es um Software-Probleme geht, die kann man prima hier im Forum zusammen lösen. Bei Hardware ist das wesentlich schwieriger... Ich kann nicht einfach bei Dir vorbeikommen und Nachmessen wo das Problem ist.
=> Also: Nur Mut!
Antworten