PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GETADC-Wert im ATMEGA32 ablegen



RoBoBo
24.05.2006, 18:25
Hallo

Im prenziep steht meine Frage schon in der Überschrift.
Ich möchte den GETADC-Wert eines Sharp Sensors im Speicher (ich weis nicht welchen mann da am besten nimmt)ablegen.

Nun weis ich leider nicht wie ich das programmieren soll und brauche eure Hilfe.

danke RoBoBo

Marco78
24.05.2006, 18:42
Welchen du am besten nimmst, hängt auch davon ab, was du weiter damit vor hast.

Es gibt zum einen den RAM. Der Speicher behält den Wert dann solange, bis ein Reset ausgeführt wird oder die Spannung fehlt.

Und den EEPROM. Da würde der Wert länger erhalten bleiben. Länger bedeutet sher lange. Wenn der Chip nicht zerstört wird, wird der Wert im EEPROM dich noch überleben.
Das kannst du anwenden, wenn der Wert nach einem Neustart wieder benötigt wird.
Allerdings sind die Schreibzyklen des EEPROMs begrenzt. 10000 oder 100000 mal kannst du ihn nur beschreiben.

Ich hoffe das hat dir schonmal etwas geholfen.

Zum programmieren. Da müsstest du sagen, was da dein Problem ist. Das auslesen des Wertes oder das weitere Verarbeiten in BASCOM?

RoBoBo
24.05.2006, 20:12
hallo,

Den wert brauche ich nach einem neustart eigendlich nicht mehr.
Also werde ich dann das RAM benutzen.


Mein Problehm mit dem programmieren ist alles.
Ich muss wissen wie man den Wert im RAM speichert und wieder ausliest. (hat jemand vieleicht schon einen Codevohrschlag?)
Bye,RoBoBo

Marco78
25.05.2006, 09:56
Hast du denn schonmal erfolgreich ein Programm geschrieben und es auf dem AVR laufen lassen?

RoBoBo
25.05.2006, 10:55
ja das schon,ich habe halt mur vom ram keine Ahnung.

Marco78
25.05.2006, 12:02
Es sind einfach nur Variablen.
Die Variablen werden benannt (z.B. A) und bekommen eine max. Größe zugeordnet(Word, Byte, ...) und werden dann im Speicher abgelegt. Ich denke, du hast damit schon gearbeitet, aber es war dir nicht bewusst, was du da machst bzw. was da passiert.

RoBoBo
25.05.2006, 20:53
HAllo

Ja mit Variabelen und größen habe ich mich schon beschäftigt.
Ich wollte nur wissen wie der Befehl genau heisst um etwas ins RAM zu schreiben.

izaseba
25.05.2006, 21:13
Wenn Du in einer Programmiersprache wie Basic oder C programmierst,
mußt Du Dir doch keine Gedanken machen, wie Du was in RAM schreibst, wozu auch.
Überlass das dem Kompiler, der kann das besser als Du.
Du definierst Dir eine Variable mit Namen und Datentyp und wo und wie sie im Ram abgelegt wird soll Dich doch nicht interessieren.
Wenn Du dich doch damit beschäftigen willst mußt Du wohl auf Assembler umsteigen :-)

Gruß Sebastian

Marco78
25.05.2006, 21:28
Wenn du einer Variable einen Wert zuordnest, dan ist der Wert im RAM.

A=10. Damit steht an irgendeiner Stelle im RAM eine 10.
B=20
C=A+B

Damit stehen im RAM drei Zahlen. Wo da 100%ig genau ist für das Programm ja egal. Werden die Werte gebraucht, findet das Programm sie schon.

http://www.rowalt.de/mc/index.htm <--- diese Seite(n) solltest du mal durcharbeiten.

RoBoBo
26.05.2006, 08:58
Hallo

Also ich kann euch ja gleich meine ganze Idee sagen:

Ich möchte einen Sharp sensor an einen Schrittmotor hängen und nach jedem schritt den Sensor auslesen und anschließend in einem Speicher ablegen.
Wenn der Motor dann einmal ganz rum ist , möchte ich alle Werte wieder auslesen und habe somit ein 2d Bild von der umgebung.
Meine Frage nun :wie kann ich das mit Variabelen lösen?#

Tschau RoBoBo

izaseba
26.05.2006, 09:01
Schonmal an ein Array gedacht, oder bietet Basic keine Arrays?

RoBoBo
26.05.2006, 10:32
Was sind denn Arrays????

woodghost
26.05.2006, 10:43
Was sind denn Arrays????

http://de.wikipedia.org/wiki/Array

Marco78
26.05.2006, 20:52
Natürlich kennt Bascom Arrays ;)

Dim W(10) As Word ' or use a BYTE array

Sharp baut sicherlich mehr als nur einen Sensor, aber du wirst schon wissen, welchen du hast und wie du ihn auswertest.

Was hast du noch für Fragen? Ist jetzt alles geklärt? Klappt das auslesen der Werte? Und das GETADC allgemein? Und bitte nicht immer nur Bruchstücke, sondern gleich alles.