Sensormatrix- kann mir jemand helfen?
-
:(Hi, ich habe folgendes Problem:
Es sind 2000 Sensorwerte ausulesen(PIC, Spannungswerte...)
Die Sensoren sind matrixförmig angeordnet, sprich in Zeilen & Spalten.
Wie sieht die Lösung in C aus?
42 Zeilen, 48 Spalten--> Die einzelnen Sensoren werden mittels Multiplexer angesprochen(sequenziell) und sollen auf dem Pic auf das besagte 2-dimensionale Feld gespeichert werden. Nebenbei soll von dem ganzen Feld der Mittelwert gebildet werden.
...Ist es auch möglich, die einzelnen Werte in grafischer Form(sprich kleine Spannung=blauer Punkt, hohe Spannung roter Punkt)darzustellen, sodass dadurch ein Gesamtbild (Intensitäts-Belastungsdiagramm) entsteht..?
Bin leider mehr mit HW vertraut, würde mich um eure Hilfe freuen!ps.:(PIC16F877, MPLAB-ICD 2,)
-
Könnten Sie bitte eine konkrete Frage zu C++ stellen?
-
Wie realisiert man dieses Array?for for Schleife...?
-
wieviele dimensionen?
-
Zeilen & Spalten

-
ginge so: ( arrays gehen immer von 0 -> n-1 )
am ende noch das wegschreiben der werte in eine text datei#include <iostream> #include <fstream> using namespace std; //******************************************* int main() { //******************************************* float messwert [42+1] [48+1]; for (int zeile=1 ; zeile <=42;zeile++) { for (int spalte=1;spalte<=48;spalte++ ) { messwert[zeile] [spalte]=(zeile-1)*48+spalte; cout<<messwert[zeile] [spalte]<<", "; } cout<<endl; } ofstream fo("messwerte.txt"); for (int zeile=1;zeile<=42;zeile++) { for (int spalte=1;spalte<=48;spalte++ ) { fo<<messwert[zeile] [spalte]<<"; "; } } fo.close(); cout<<endl<<endl; system("pause"); return 0; }
-
c.rackwitz schrieb:
wieviele dimensionen?
Egal wie viele
kermit1 schrieb:
float messwert [42+1] [48+1];(Bem.: '+1' tut nicht Not)
ich finde es immer einfacher, ein eindimensionales Array aufzuspannen. Wenn man den Zugriff über die Spalten- und Zeilen-Indizes braucht, so schreibt man sich eine kleine Hilfsfunktion.float messwert[48*42]; int indexVon( int zeile, int spalte ) { // prüfe ggf., ob zeile & spalte im zulässigen Bereich sind return zeile * 48 + spalte; }.. und meistens braucht man das nämlich nicht, ja es stört sogar - siehe Code von kermit1.
Gruß
Werner