Forum: Mikrocontroller und Digitale Elektronik Datenablage im Ram unter C auf Atmega16


von Chillman (Gast)


Lesenswert?

Hallo zusammen,



Ich möchte einen Code den ich über den ICP1 einselse auswerten. Dieser 
Code besteht aus verschieden langen Impulsen (insgesammt etwa 100 
Impulse) mit einer Gesammtlänge von etwa 100ms, die ich mittels Input 
Capture messen möchte um diese dann auszuwerten.

das Problem:
Ich weiß nicht wie ich es bewerkstelligen soll, dass die Werte aus ICR1H 
und ICR1L erst mal alle auf dem Ram der reihe nach gespeichert werden 
sollen (das müsste dann wahrscheinlich mit nem Pointer geschehen, der 
nach dem er einen wert in den speicher geschrieben hat um eine stelle 
erhöt wird um den nächsten wert in die nachbarspeicherzelle zu 
schreiben), damit ich diese dann später auswerten kann.

leider verstehe ich nicht wie man mit pointern arbeitet bzw welche 
befehle es dafür gibt.

von Johannes M. (johnny-m)


Lesenswert?

Dann wirst Du Dir wohl ein C-Buch (z.B. Kernighan/Ritchie) nehmen müssen 
und Dir anschauen, wie man das in C lösen kann. Ob Du das 
sinnvollerweise mit einem Zeiger oder mit einem Array machst (wobei das 
zweite vielleicht besser verständlich und daher eher zu empfehlen ist), 
musst Du dann selbst rausfinden...

von Chillman (Gast)


Lesenswert?

Gibt es Online nicht etwas sinnvolles zum nachschalgen? speziel für AVR 
vieleicht?

von crazy horse (Gast)


Lesenswert?

http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_014_001.htm
Kannst ja auch erst mal mit einem ordinären array arbeiten, das ist 
erstmal was "menschlicher", aber im Prinzip auch nichts anderes.

unsigned int messwerte[ANZAHL];
char wr_ptr=0;

Messroutine:
messwerte[wr_ptr]=ICR1;
wr_ptr++;
if (wr_ptr>ANZAHL)....//

Ansonsten: wahrscheinlich brauchst du gar nicht die tatsächlichen 
Impulslängen, sondern nur eine qualitative Aussage (lang oder kurz), 
dafür reicht dann ein einzelnes Bit statt einer 16bit-Variable. Das 
kannst du dann direkt bei der Messung eintüten.

von Falk B. (falk)


Lesenswert?

@ Chillman (Gast)

>Gibt es Online nicht etwas sinnvolles zum nachschalgen? speziel für AVR
>vieleicht?

AVR-GCC-Tutorial

Wobei dort NICHT elementare C-Grundlagen erklärt werden.

MFG
Falk

von Chillman (Gast)


Lesenswert?

das tutorial kenn ich schon, damit hatte ich mich zu beginn beschäftigt 
um überhaupt mal zu sehen wie man nen AVR mit C programieren kann, 
einfache Funktionen sind kein problem, aber mit den Pointern hatte ich 
schon früher probleme, hatte es es bislang immer irgendwie geschafft sie 
zu umgehen.

von Falk B. (falk)


Lesenswert?

@ Chillman (Gast)

>schon früher probleme, hatte es es bislang immer irgendwie geschafft sie
>zu umgehen.

Dann wird es Zeit dieses Problem zu lösen. Man kann auch nicht wirklich 
Auto fahren, ohne den 2., 3.,4. 5. Gang zu benutzen.

MFG
Falk

von Chillman (Gast)


Lesenswert?

stimmt schon, mach mich gleich mal ans lesen des galileo e-books

Danke! schon mal

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
Noch kein Account? Hier anmelden.