Hallo, ich hätte da mal eine Frage... Ich programmiere zur zeit eine Zutrittskontrolle per RFID System (Transponder). Nun habe ich alles soweit doch möchte ich die letzten Eingänge speichern. ich habe mir eine eigene Platine angefertigt mit ATMega32. Zudem verwende ich noch eine Echtzeituhr. nun möchte ich die 10 letzten Benutzer (Eintritte) mit Uhrzeit und Datum im EEprom abspeichern. Nur habe ich noch nie mit Feldvariabeln oder EEprom gearbeitet. kann mir jemand helfen? Ich dachte es wie folgt zu machen: Variable (Schlüsselnummer, Stunde,Minute,Sekunde,Tag,Monat,Jahr) schöne Grüsse
ich habe die Hilfe von Bascom durchgestöbert und sämtliche Beispielprojekte... ist es überhaupt möglich mehr dimensionale Arrays in Bascom herzustellen? wenn ja wie?
wie viel speicher brauchst du da? wieviel stellen mit wieviel ziffern gibts ? für buchstaben ist ascii ja nicht so gut <(und für zahlen erstrecht nicht ) also eigenes format, braucht weniger speicher und wird dann zur ausgabe umgewandelt. kann man die variabklen nicht byte für byte in den eeprom schreiben?
AT32_Bascom_Programmierer schrieb: > ich habe die Hilfe von Bascom durchgestöbert und sämtliche > Beispielprojekte... ist es überhaupt möglich mehr dimensionale Arrays in > Bascom herzustellen? wenn ja wie? Keine Ahnung. Aber zur Not kannst du ja den Inhalt des Arrays auch in Einzelschritten ins EEPROM transferieren. Laut Bascom Hilfe DIM V AS ERAM BYTE Legt eine Variable V an, auf die du ganz normal zugreifen kannst, nur dass diese Variable im EEPROM residiert. Du kannst ja jetzt mal probieren, welche Datentypen anstelle von BYTE erlaubt sind, bzw. ob du V als Array ausführen darfst. Edit: Steht doch da in der Hilfe > You may also use ERAM variables as indexes. Like : > Dim ar(10) as Eram Byte
Philipp schrieb: > wie viel speicher brauchst du da? wieviel stellen mit wieviel ziffern > gibts ? Also da ich nichts über mehrdimensionale Array's gefunden habe dachte ich es wie folgt zu machen: Ein Array mit mit 8 "Stufen". Dim Testarray(8) as Byte Dim Key as Byte 'gibt an welcher Schlüssel es ist Dim Zahl as Byte 'gibt an der wievielte Eintritt es ist Testarray(1) = Key Testarray(2) = Zahl Testarray(2) = _hour '24 Zahlen Testarray(3) = _min '60 Zahlen Testarray(4) = _sec '60 Zahlen Testarray(5) = _day '31 Zahlen Testarray(6) = _month '12 Zahlen Testarray(7) = _year '100Zahlen > Aber zur Not kannst du ja den Inhalt des Arrays auch in Einzelschritten > ins EEPROM transferieren. wie meinst du das genau ? habe bisher noch nie mit EEprom gearbeitet. Wichtig ist das ich nur eine bestimmte Anzahl Beiträge abspeichern möchte (bsp 10) > You may also use ERAM variables as indexes. Like : > Dim ar(10) as Eram Byte das heist ja dann das ich an stelle von "V" ein Array einsetzen kann. kann diese Variable denn später genau so gebraucht werden sie eine normale Variable? (Array) Danke schonmal
nein, Bascom erlaubt egal ob SRAM oder EEPROM keine mehrdimmensionale Arrays, aber Arrays sehr wohl. Du kannst also einfach dim uhrzeit (10) as eram Word dim Datum (10) as eram word etc. und dann einfach wie aus dem SRAM drauf zugreifen. Einziger Hemmschuh, bei manchen Operationen muss man ggf. für Rechenoperationen die ERAM-Variable erst in ne SRAM-Variable lesen um sie weiter verarbeiten zu können. ist etwas doof, aber gewöhnungssache halt.
ich werde es jetzt noch anders machen... da ich die myTWI Echtzeituhr verwende erhalte ich die komplette Zeit und das Komplette Datum. Diese werde ich zusammensetzten dann erhalte ich einen String von mindestens 16.Zeichen den geb ich dann in den array... und durch die Adresse des Array geb ich die Schlüsselnummer an... somit sehe ich dann den letzten eingang von jedem Schlüssel... was denkt ihr? ist das besser? werde jetzt versuchen ein beispiel programm zu schreiben und dann veröffentlichen
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.