Hallo zusammen,
ich wollte mich jetzt in meinem Projekt jetzt mal der LED-Matrix widmen und bis ich alle Module hab, schon mal etwas mit der Software beginnen.
Ich bin noch absoluter Anfänger in C++, PHP ist mir da viel vertrauer.
Jedenfalls, ich nutze in meiner LED-Matrix mehrere LED-Module mit 8x8 LEDs, von denen ich 4 untereinander und 10 nebeneinander anreihe. Da natürlich erst das einzelne Modul durchgeschleift ist, geh ich nicht Reihe für Reihe durch mit der Nummerierung, sondern 8 rüber, eine Zeile runter, wieder 8 rüber und nach der 8 Zeile und Spalte wieder in die erste Zeile.
Also wollte ich mir eine kleine Funktion schreiben, die in einem Vector festhält, wo welche LED sitzt. Zum einem als Koordinatensystem mit der laufenden Nummer, als auch, welche Koordinaten die laufende Nummer hat.
Zur kontrolle wollte ich mir das dann mal ausgeben lassen, aber es kam nichts.
Hier mal der Code:
#include <string>
#include <array>
#include <vector>
using namespace std;
void createDisplay(int outputs, int m_height, int m_width, int rows, int cols)
{
vector<vector<vector<int>>> display;
vector<array<int, 2>> leds;
int led_nr = 0;
int led_row;
int led_col;
cout << "Outputs: " << outputs << endl;
cout << "m_height: " << m_height << endl;
cout << "m_width: " << m_width << endl;
cout << "rows: " << rows << endl;
cout << "cols: " << cols << endl;
for (int i_1 = 0; i_1 < outputs; i_1++)
{
for (int i_2 = 0; i_2 < rows; i_2++)
{
for (int i_3 = 0; i_3 < cols; i_3++)
{
for (int i_4 = 0; i_4 < m_height; i_4++)
{
for (int i_5 = 0; i_5 < m_width; i_5++)
{
led_row = (i_2 * m_height) + i_4;
led_col = (i_3 * m_width) + i_5;
display[i_1][led_row][led_col] = led_nr;
leds[led_nr] = { led_row, led_col };
led_nr++;
cout << "Hallo";
}
}
}
}
}
int count_rows;
int count_cols;
for (int i = 0; i < display[0].size(); i++)
{
count_cols = 0;
for (int e = 0; e < display[0][i].size(); i++)
{
count_cols++;
}
cout << count_rows << ". Zeile: " << count_cols << " Spalten" <<endl;
count_rows++;
//cout << endl;
}
//cout << "Dieser Vektor hat " << count_rows << " Zeilen und " << count_cols << "Spalten"
//return display;
}
int main(int argc, char** argv) {
int outputs = 2;
int matrix_height = 8;
int matrix_width = 8;
int rows = 2;
int cols = 10;
createDisplay(outputs, matrix_height, matrix_width, rows, cols);
//system("pause");
return 0;
}
Alles anzeigen
Bei mir kommt nicht mal ein "Hallo" aus der geschachtelten for-Schleife raus, also irgendwo bleibt das hängen. Die Werte werden aber richtig an die Funktion übergeben.
Natürlich werd ich das später noch richtig "aufräumen", das war jetzt nur mal ein Code-Schnipsel, ob das so überhaupt funktionieren könnte.
Ich hoffe, es ist verständlich, wo mein Problem liegt und was ich eigentlich will.
Vielen Dank schon mal und
liebe Grüße
Fipsi
P.S.: ich vermiss mein Array-Handling aus PHP jetzt schon