www.mikrocontroller.net

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


Autor: Chillman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Chillman (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.galileocomputing.de/openbook/c_von_a_bi...
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chillman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chillman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt schon, mach mich gleich mal ans lesen des galileo e-books

Danke! schon mal

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.