PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Array zweidimensional für String



elko68
30.12.2008, 18:04
Hallo,

und einen freundlichen Gruß an alle User.
Ich bin heute bei euch hier eingestiegen .

Zur Zeit habe ich ein Projekt am laufen mit dem ich mehrere Temperatursensoren DS18B20 mit einem ATMega128 auslese.
Die Daten werden aufbereitet,und dann an einen SIM-KNX µC Board weiterleitet. Dieses Board schickt mir die Temp. auf den EIB KNX Bus, so dass ich die Temperaturdaten mittels Gira Homeserver verarbeite und auf dem Touchpanel darstelle.

Mein Laboraufbau läuft soweit, so dass ich nun in der Optimirungsfase bin.
Momentan sind die Configdaten im Prog (Basic) fest eingebunden, was so für mich ein NoGo ist.
Der Testaufbau ist mit ner C-Control Pro Mega128 realisiert.(Die IDE ist grausam)
Neue HW ist unterwegs und da mache ich das Prog mit Bascom.
C und ASM is für mich (noch) kein Thema, ich bin mit Turbopascal groß geworden naja und mit Basic das Fahradfahen gelernt.

So nun zu meinem eigentlichen prob.
Wie realisiert man mit Bascom ein Array of String zweidimensional ?
Habe da im Help nicht so richtig was gefunden.

Alternativ

Wie bekomme ich eine SD-Karte an den Mega bzw Wie lese ich da eine Datei in der ich meine Config Daten vorhalte?

for_ro
30.12.2008, 18:42
So nun zu meinem eigentlichen prob.
Wie realisiert man mit Bascom ein Array of String zweidimensional ?
Habe da im Help nicht so richtig was gefunden.

Grundsätzlich gibt es in Bascom keine mehrdimensionalen Arrays. Wenn man die wirklich benötigt, muss man die entsprechend Teile selber im Speicher organisieren.
Aber wenn ich dein Problem richtig verstanden habe, brauchst du auch nur ein Array von Strings. Ein String ist ja selber eine Art Array, nur gibt es spezielle Funktionen um auf Teile zuzugreifen (Left(), Right(), Mid()).
Mit
Dim MyStringArray(10) as String*20
dimensionierst du dir 10 Strings, die jeweils die nutzbare Länge von 20 haben (dahinter ist noch Platz für ein 0-Byte reserviert, um das Ende anzuzeigen).
Nun kannst du mit den normalen Funktionen darauf zugreifen
Left(MyStringArray(2),8 )
gibt dir vom 2-ten String (Bascom ist hier 1-basiert) die ersten 8 Zeichen zurück.


Alternativ

Wie bekomme ich eine SD-Karte an den Mega bzw Wie lese ich da eine Datei in der ich meine Config Daten vorhalte?

Wenn du nur für die Konfiguration die SD benutzen willst, wäre das etwas übertriebener Aufwand. Die "paar" Werte kannst du einfacher im EEPROM speichern.

Gruß

Rolf

elko68
30.12.2008, 18:54
Hallo Rolf!

Danke für deine Antwort.
Das mit den Sring ist erst mal ein Ansatz.

Der Gedanke mit der SD ist der, dass ich die SD herausnehme und am PC die Config editiere.
Sonst muss ich über RS232 Dialog die Config Daten reinhacken.

for_ro
30.12.2008, 19:19
Das Problem mit den SD-Karten ist, dass schon viele Leute alleine über den Anschluss an den µC gestolpert sind. Unterschiedliche Spannungen, Hard oder Soft SPI, viel Speicherplatz und und und...

Ich habe die SD Karte nicht nur für die Konfiguration sondern auch fürs Loggen der Daten verwendet. Allerdings ohne AVR-DOS, weil mir das zu viel Speicher klaut.

Versuche mal, eine Verbindung aufzubauen und dieses Programm von Jaecko ans Laufen zu bringen. Das benutze ich auch immer, wenn ich die Verbindung zur karte checken will. https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=42019

Gruß

Rolf