guten abend, ich habe so gut wie keine erfahrung in der mikrocontroller programmierung. in meinem projekt arbeite ich mit einem pic30f µC. jetzt bin ich gerade auf die problematik gestoßen, dass auf µCs so gut wie kein speicher zur verfügung zu stehen scheint (laut datenblatt 48kb programmspeicher, 2kb ram, 1kb eeprom) meine bisherigen programmierkenntnisse beschränken sich auf den PC bereich. und da muss man sich ja keine gedangen darüber machen wieviele bit speicherplatz z.B. das wort 'speicherplatz' benötigt. jetzt brauche ich für mein projekt aber eine tabelle in der ein paar strings gespeichert werden sollen. die tabelle hätte 20 spalten und ca. ebensoviel zeilen, in jeder zelle müsste ein wort mit ca. 5 bis 25. zeichen stehen. das sind dann worst case: 20*20*25 charakters ... also 10kbyte oder? d.h. für so eine mickrige datenmenge bräuchte ich schon eine speichererweiterung??? ich hab gesehen dass so speichererweiterungsdinger egal ob ram oder eeprom (seriell jeweils) mind. 6 pins haben. jetz hab ich aber schon 2uarts und die 8portb pins belegt ... d.h. doch dass ich gar keinen speicher mehr anschließen kann?
tja so ne tabelle wie du sie dir vorstellst ist für so nen yC schon recht groß. also entweder rest des programms verkleinern oder speicher dranhängen. wenn ich mich nicht irre gibts die billige 24er reihe bis 256Kb und man kann 8 davon an einen bs hängen )(bekommen alle ne 3bit-adresse per hardware aufgedrückt) und du hast 8x256=2400kB für deine tabellchen. natürlich geht auch nur einer oder mehrere (verschiedene) kleinere
Hallo schorsch, deine Berechnung ist richtig, wobei es sich IMO nicht um worst case sondern actual case handelt. Dynamische Speicherverwaltung auf nem µC ist Flash-Verschwendung und braucht durch die Hash-Tabelle nur noch mehr RAM. Um die Anbindung externen Speichers wirst du wahrscheinlich nicht kommen. Ohne Zusatzhardware brauchst du dafür Adress- und Datenpins, mit Schieberegistern kannst du es noch etwas runterdrücken. Da ich vor dem selben Problem stehe, hab ich ein Projekt in der Mache (128 KByte, Anbindung per UART und I²C), aber leider erst in einem frühen Stadium und momentan ohne Zeit etwas daran weiterzuarbeiten.
24er laufen mit I2C und brauchen am controlör nur 2pins.der rest wird hartverdrahtet
speicherschorsch schrieb: > das sind dann worst case: 20*20*25 charakters ... also 10kbyte oder? Die Frage ist doch was sind das für Texte und wo gehen die hin? Sollen die an ein LCD gesendet werden? Oder an den PC übertragen? Man kann halt anstelle des Strings auch einfach eine Zahl senden und der angeschlossene Teilnehmer "weiß" dann welchen String er anzeigen soll.
naja, die daten kommen von RFID Tags und werden im µC miteinander verwurschtelt, und es gibt zu viele unterschiedliche datensätze als dass ich eine art wörterbuch für alle implementieren könnte... also wirds wahrsch. der externe speicher, außer mir fällt noch was cleveres ein dass ich nicht alle daten von den tags aufm µC speichern muss ...
Aber die RFID Tags liefern dir doch keine Strings oder? Und was soll dann mit den "verwurschtelten" Daten geschehen? Am besten ist wenn du dir erstmal ein Blockschaltbild malst, es hier vieleicht einstellst dann kann man schon mehr sagen.
Ich denke auch, wichtig ist erst mal zu klären, was kommt an Daten rein (RFID) und wo gehen die Daten wieder raus - und was muss dazwischen damit gemacht werden. Eine Tabelle im EEPROM macht nur dann Sinn, wenn die auch geändert werden MUSS - sonst, wenn es sich bei der Tabelle nur um eine Übersetzungstabelle von einem RFID-Code in Klartext handelt kann man diese vielleicht auch als konstante Tabelle im Programmcode ablegen. Andere Möglichkeit wenn es nicht direkt auf einem LCD angezeigt werden muss ist, dem Zielsystem nur den Zahlencode zu schicken (oder eine Tabellenposition) und das Zielsystem (PC mit Windows, Linux o.ä.) übersetzt dann in den Klartext.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.