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


Anmelden zum Antworten