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
Ja kann man. Anbei dein Link: http://www.amazon.de/Programmieren-C-ANSI-2-C-Reference/dp/3446154973/ref=sr_1_1?ie=UTF8&s=books&qid=1222694734&sr=8-1
Auslesen tut man es so
1 | uint16_t wert; |
2 | |
3 | wert = ADCL; |
4 | 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
Warum sollte das nicht gehen? Bspw. so:
1 | #define N 50
|
2 | |
3 | unsigned int array[N]; |
4 | |
5 | for(i=0; i<N; i++) |
6 | 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.
Danke leute für ihre Antwort. bin immer noch dabei meine Werte durch ein Array abzuspeichern. bin zum folgenden Code gekommen.
1 | volatile uint16_t werte; |
2 | uint8_t i; |
3 | void ZMSpeichern(){ |
4 | uint16_t speicherliste[N]; |
5 | Berechnung(); |
6 | for(i=0; i<N; i++) |
7 | speicherliste[i] = werte; // diese Werte werden zum display geschickt |
8 | }
|
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
> ... durch ein Array abzuspeichern.
Richtig ist: ... in ein Array abzuspeichern.
Das hier gibt den Output, den du willst:
1 | for(i=0; i<N; i++) { |
2 | printf("%d -%d- bei speicherliste[%d]\n\r", i+1,speicherliste[i],i); |
3 | }
|
Ein Tipp: lern das C-Programmieren nicht am uC, sondern am PC. Das geht viel leichter. Und die Entwicklungsumgebung(en) gibts für lau.
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.