- vrob: Az IBM PC és a játékok a 80-as években
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- gban: Ingyen kellene, de tegnapra
-
LOGOUT
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Janos250
őstag
Használd ekkold által írtakat. Az jó megoldás, én csak annyit fűznék hozzá, hogy ha az eredeti programhoz jobban passzoló neveket használsz, akkor talán kevésbé keveredsz bele.
Azért ez a téma lehet, hogy megér egy bővebb kifejtést, ezért írtam egy kis tutorialszerű programot.#include <iostream> // ha a std::cout-ot akarjuk hasznalni, egyebkent torlendo
void setup() {
delay(1000);
Serial.begin(115200) ;
delay(1000);
/*
A C++-ban a ("C tipusu") tomb neve constans pointer.
Ugyanugy hasznalhatjuk oket egymas helyett is, azzal a megkotessel,
hogy a tomb neve konstans, nem valtoztathatjuk meg.
Ezert nem lehet egyenlosegjel bal oldalan hasznalni.
Viszont, ha helyette egy tenyleges pointert hasznalunk, az megvaltoztathato,
azaz egy masik tomb nevet mint pointert adhatjuk neki.
Mas modszereket is hasznalhatunk ennek megkerulesere, mint peldaul
a std::array. Ez mar szereelhet erteekado utasitas bal oldalan.
Vagy a for each-csel valo ertekadas, esetleg a std::vector
Mind kozul a leggyorsabb a sima tomb
*/
Serial.println ("ha egy index van:");
int* xy ;
int xy_array[9] = {1,0,0, 0,1,0, 0,0,1};
int xy2_array[9] = {11,12,13, 21,22,23, 31,32,33};
Serial.println ("xy = xy_array:");
xy = xy_array;
for (int i = 0; i <9 ; i++){
Serial.print (xy[i]); Serial.print (" ");
};
Serial.println ();
Serial.println ("xy = xy2_array:");
xy = xy2_array;
for (int i = 0; i <9 ; i++){
Serial.print (xy[i]); Serial.print (" ");
};
Serial.println ();
// nyomtatja:
/*
ha egy index van:
xy = xy_array:
1 0 0 0 1 0 0 0 1
xy = xy2_array:
11 12 13 21 22 23 31 32 33
*/
//he több index van akkor typedef hasznalando
//typedef <data_type> <alias_name> [<size>]
typedef int egyindexes_arr[3]; // ez egy 3 elemű vektor tipus
egyindexes_arr* enMatrixom ;
// harom elemu vektorra mutato pointer,
// melynek az elemei szinten harom elemu vektorok
// Az alabbiak ugyanigy, csak tombok.
// Ne feledd tomb = pointer!
egyindexes_arr enMatrixom1[3] = {{1,0,0}, {0,1,0}, {0,0,1}} ;
egyindexes_arr enMatrixom2[3] = {{11,12,13}, {21,22,23}, {31,32,33}} ;
Serial.println ("eredeti ketindexes: ");
for (int i = 0; i <3 ; i++){
for (int j = 0; j <3 ; j++){
Serial.print ( enMatrixom1[i][j] ); Serial.print (" ");
}; // end j
Serial.println ();
}; // end i
Serial.println ();
/*
eredeti ketindexes:
1 0 0
0 1 0
0 0 1
*/
Serial.println ("enMatrixom = enMatrixom1 utan:");
enMatrixom = enMatrixom1 ;
for (int i = 0; i <3 ; i++){
for (int j = 0; j <3 ; j++){
Serial.print ( enMatrixom[i][j] ); Serial.print (" ");
}; // end j
Serial.println ();
}; // end i
Serial.println ();
/*
enMatrixom = enMatrixom1 utan:
1 0 0
0 1 0
0 0 1
*/
Serial.println ("enMatrixom = enMatrixom2 utan:");
enMatrixom = enMatrixom2 ;
for (int i = 0; i <3 ; i++){
for (int j = 0; j <3 ; j++){
Serial.print ( enMatrixom[i][j] ); Serial.print (" ");
}; // end j
Serial.println ();
}; // end i
Serial.println ();
/*
enMatrixom = enMatrixom2 utan:
11 12 13
21 22 23
31 32 33
*/
// Hasznalhatunk mas megoldasokat is, de azok nem biztos, hogy a régi lapokon mennek,
// csak a korszerűbbeken, de ESP32-n biztosan(kipróbáltam)
// peldaul a std::array, vagy a for each hasznalata
// a std::cout helyett termeszetesen hasnalhatunk barmilyen mas nyomtato utasitast is
std::array<int, 9> std_arr_1 = {1,0,0, 0,1,0, 0,0,1};
std::array<int, 9> std_arr_2 = {11,12,13, 21,22,23, 31,32,33};
Serial.println ("eredeti std_arr_1 :");
for (int i = 0; i <9 ; i++){
Serial.print (std_arr_1[i]); Serial.print (" ");
};
Serial.println ();
std_arr_1 = std_arr_2; // igy hasznalhato az ertekadas,
//egyebkent meg ugyanugy hasznalhatjuk, mint a C tipusu tombot.
Serial.println ("std_arr_1 = std_arr_2 utan :");
for (int i = 0; i <9 ; i++){
Serial.print (std_arr_1[i]); Serial.print (" ");
};
Serial.println ();
/*
eredeti std_arr_1 :
1 0 0 0 1 0 0 0 1
std_arr_1 = std_arr_2 utan :
11 12 13 21 22 23 31 32 33
*/
Serial.println (
"a korabban megadott xy tomb elemeit lecserésljük a felsorolasban szereplokre :");
Serial.println ("lecsereles elott:");
// kinyomtatjuk
for ( auto tombEgyEleme : xy_array ) {
std::cout << tombEgyEleme << ' ';
}
std::cout << '\n';
// lecsereljuk:
uint8_t j = 0;
for ( auto tombEgyEleme : {11,12,13, 21,22,23, 31,32,33} ) {
xy_array[j++] = tombEgyEleme;
}
Serial.println ("lecsereles utan:");
// kinyomtatjuk
for ( auto tombEgyEleme : xy_array ) {
std::cout << tombEgyEleme << ' ';
}
std::cout << '\n';
/*
a korabban megadott xy tomb elemeit lecserésljük a felsorolasban szereplokre :
lecsereles elott:
1 0 0 0 1 0 0 0 1
lecsereles utan:
11 12 13 21 22 23 31 32 33
*/
} ; // end setup
void loop() {
// put your main code here, to run repeatedly:
}
Új hozzászólás Aktív témák
Hirdetés
- Xbox tulajok OFF topicja
- Amlogic S905, S912 processzoros készülékek
- TCL LCD és LED TV-k
- One otthoni szolgáltatások (TV, internet, telefon)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Nintendo Switch 2
- Renault, Dacia topik
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Milyen RAM-ot vegyek?
- vrob: Az IBM PC és a játékok a 80-as években
- További aktív témák...
- Lenovo Ideapad Gaming 3/Intel i5-11320H/16GB/512SSD/RTX 3050 TI 4GB/Gari
- HP VICTUS Gamer laptop /i5-12450H/16GB/512 GB SSD/RTX 3050 4 GB/144Hz/
- Corsair RM750x
- Lian Li 011Dynamic Evo/RTX4070Super Eagle OC/Intel Core i5-14600K/DDR5 G.Skill Trident Rgb 6000MHz
- Xiaomi Redmi Note 13 256GB Kártyafüggetlen 1Év Garanciával
- HP 200W (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm töltők + tápkábel, 928429-002
- BESZÁMÍTÁS! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- Dell USB-C dokkolók: (K20A) WD19/ WD19S/ WD19DC + 130W, 180W, 240W töltők
- BESZÁMÍTÁS! Intel Core i9 9900KF 8 mag 16 szál processzor garanciával hibátlan működéssel
- Használt Intel procik - Core 2 - Dual Core
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest