Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Speicherung und Auslesen von größeren Datenmengen Kategorie: Programmierung CC-Plus (von Dieter - 16.05.2008 21:51)
 Als Antwort auf Re: Speicherung und Auslesen von größeren Datenmengen von joergm6 - 16.05.2008 15:42
Dieter nutzt:  CC1-Unit V1.1, CC1-Station V1.1
Hallo Jörg,

Programmierkenntisse am PC sind GW-Basic, QBasic, C, C++.

Die gesamten Insellösungen werden in QBasic programmiert, auch das Auslesen und ansprächen von I2C wird in QBasic erledigt.

Das Programmierprinzip habe ich verstanden von deinem Beispiel.

Das mit dem Speichern müsste ich hinbekommen.

Frage:
Ich suche noch einen Preisgünstigen Windmesse, z.B. mit RS232, S0, Analog oder Impulsausgang.
Ich benötige ca. 8 Stück, deshab sollte der Preis sich im unteren Bereich bewegen, für Tipps bin ich dankbar.

Gruß Dieter


> Hallo Dieter,
>
> hier mal ein kompletter Bausatz mit Echtzeituhr und EEPROM-Sockel, falls du noch keine Uhrzeiteinstellung bei Stromausfall mit PCF o.ä. hast.
> http://cctools.hs-control.de/artikel/index.php?artikel=1084
>
> Man kann natürlich auch den EEPROM allein verlöten, ist fast 0 Aufwand.
>
> Chip: AT24C512 (64kByte)
> http://cctools.hs-control.de/artikel/index.php?artikel=111x
> oder
> http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A32;GROUPID=2953;ARTICLE=45597;START=32;SORT=order_col_artnr_besch;OFFSET=16
>
> Das sind sehr viele Werte die du speichern möchtest. Hier ist es also nicht möglich, zusätzlich zum Wert z.B. Tages/Uhrzeit-Infos mit abzuspeichern. Rechnen wir mal:
> alle 10min bedeutet 6 mal pro Stunde und 24 Stunden pro Tag: 6*24=144 Werte je Tag
> Ein Jahr würden 144*365Tage=52560 Werte ergeben, was theoretisch in das 64k EEPROM passt. Allerdings rechnet die C-Control ab 32768 negativ, was wohl trotzdem gehen soll, habe ich aber keine Erfahrung. Also gehen wir mal von 1/2 Jahr aus. Wir müssen uns also die Speicherstelle errechnen, z.B. vom Tag des Jahres + Wert des Tages. Du musst dann aber wissen für welches halbe Jahr die Werte gelten.
> Hast du die aktuelle C-Control-Firmware, dann kann man sehr gut die ChipRAM-Funktion zum EEPROM-Zugriff benutzen, der EEPROM muß dann auf Adresse 160 eingestellt sein.
> Wie sieht es mit den Programmierkenntissen auf der PC-Seite aus? Ich habe mein kleines Program in VisualBasic.NET geschrieben. Das Programm auf der PC-Seite muss natürlich die speziell gesendeten Daten verarbeiten können.
> Hier ein paar Codeschnipsel zur Ansicht, hier ist nix getestet, nur mal so aufgeschrieben ohne Garantien:
>
>
> sub TagdesJahres
> ' Code von malo-web
>  define TagNr as word
>  TagNr = (month - 1) * 31 + day
>  ' je nach Monat wird korrigiert
>  if month  >  2 then TagNr = TagNr - 3
>  if month  >  2 AND year MOD 4 = 0 then inc(TagNr) ' Schaltjahr 29.2.
>  if month  >  4 then dec(TagNr)
>  if month  >  6 then dec(TagNr)
>  if month  >  9 then dec(TagNr)
>  if month  > 11 then dec(TagNr)
>  return TagNr
> end sub
>
> ' Speicherstelle errechnen
> sub Speicherstelle
>  define w as word
> ' 1.Halbjahr
>  w=TagdesJahres
> ' 2.Halbjahr wieder bei Speicherstelle 0 anfangen
>  if w>183 then w=w-183
>  dec(w)
>  w=w*144+WertdesTages
>  return w
> end sub
>
> ' eines der 144 Stellen je Tag berechnen z.B. 12Uhr  (12*60+0)/10=72 (die hälfte von 144 ;-)
> sub WertdesTages
>  return (hour*60+minute)/10
> end sub
>
> 'Wert ins EEPROM speichern
> ChipRam(Speicherstelle)=WindWert
>
> ' alle Werte auf COM ausgeben
> sub AusgabeWerte
>  define i as integer
>  define j as integer
>   lcd.off
>   baud R38400
>   for i=0 to 182   ' 183 Tage
>    for j=0 to 144     ' 144 WerteJeTag in einer Zeile
>     print chipram(i*144+j) & " ";
>    next
>    print "" ' neue Zeile
>   next
>   Baud R9600
> end sub
>
> Naja, ich hoffe es hilft dir schon mal
>
> Gruß Jörg
>
> > Hallo Jörg,
> >
> > es soll die Windgeschwindigkeit, alle 10 Minuten gespeichert werden.
> > Von 0,00 m/s, bis 25,5m/s, das bedeutet, dass Byte von 0 bis max. 255 (=25,5m/s) gespeichert werden sollen. Die Aufzeichnungszeit soll möglichst Lange sein z. B. 2 bis 6 Monate.
> >
> > Mit I2C-Bus habe ich Erfahrung bei anderen Projekten.
> >
> > Fragen:
> > Welches I2C-EEPROM kannst du empfehlen (Typ-Nr.)?
> > Keines Beispielprogramm zum Schreiben in den Speicher ist nicht schlecht.
> > Keines Beispiel zum Lesen der Daten könnte ich auch brauchen.
> >
> > Gruß Dieter
> >
> > PS
> > Das Anschließen des PCs an das c-control ist OK.
> >  
> >
> >

 Antwort schreiben

Bisherige Antworten: