mikrocontroller.net

Forum: Compiler & IDEs Werte über array speichern


Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
wie der Name verrät bin ich dabei die Welt der Programmierung zu 
entdecken.
Deswegen habe ich folgende Frage.
Kann man werte die man aus einem ADWandler liest über Array speichern.
Am ADWandler bekomme ich immer neue Werte, deswegen will z.B 50 Werte im 
SRAM speichern und nach Bedarf abrufen können. Gerne würde ich das mit 
ein Array tun.
Falls jemand ein Link zur Verfügung hat wäre ich sehr dankbar.
Danke

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auslesen tut man es so
uint16_t wert;

wert = ADCL;
wert += (ADCH<<8);

und den Wert kannst doch dann in ein uint16_t a[50] array packen. Wozu 
brauch man da jetzt Links.

AVR-GCC-Tutorial + Grundlagen C

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum sollte das nicht gehen? Bspw. so:
#define N 50

unsigned int array[N];

for(i=0; i<N; i++)
  array[i] = read_adc();

Oder soll das Schreiben der Werte in das Array ohne Softwareeingriff
erfolgen? Dann muss der ADC DMA-fähig sein. Bei einigen, aber lange
nicht bei allen Mikrocontrollern ist dies der Fall.

Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke leute für ihre Antwort.
bin immer noch dabei meine Werte durch ein Array abzuspeichern.
bin zum folgenden Code gekommen.
volatile uint16_t werte;
uint8_t i;
void ZMSpeichern(){
uint16_t speicherliste[N];
Berechnung();
for(i=0; i<N; i++)
speicherliste[i] = werte; // diese Werte werden zum display geschickt
}

nun würde ich gerne wissen wie die Werte mit ihren Index gezeigt werden 
können.

z.B
1 -wert- bei speicherliste[0]
2 -wert- bei speicherliste[1]
... usw
Danke für ihre Hilfe

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... durch ein Array abzuspeichern.
Richtig ist: ... in ein Array abzuspeichern.

Das hier gibt den Output, den du willst:
for(i=0; i<N; i++) {
   printf("%d -%d- bei speicherliste[%d]\n\r", i+1,speicherliste[i],i);
}

Ein Tipp:
lern das C-Programmieren nicht am uC, sondern am PC. Das geht viel 
leichter. Und die Entwicklungsumgebung(en) gibts für lau.

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.