- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- Rap, Hip-hop 90'
- Meggyi001: RTX 5060 - Az új népkártya?
- eBay-es kütyük kis pénzért
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
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
-
Teasüti
nagyúr
Sziasztok ismét!
Kérhetnék egy kis segítséget a stack pointer megértésében?
Annyit tudok róla, hogy the stack pointer is a small register that stores the address of the last program request in a stack.
Valamint átrágtam magam ezen a bevezetőn a pointer-ek használatáról.
Ez alapján úgy sejtem az SP egy uint16_t változóval egyenértékű regiszter, hisz 256-nál több bájt van az SRAM-ban.
Korrekt?
Egy új sketch-ben a Serial.println(SP) nekem 2297-et ad, ami egyrészt egy 16 bites szám, másrészt meg mi a fene?? Nem 2KB SRAM van csak az Atmel 328p-ben?Nem értem továbbá, hogy a stack és heap size vizsgálatakor miért így deklarálják a változókat, ahogy:
void check_mem() {
//uint8_t * heapptr, * stackptr; // I declared these globally
stackptr = (uint8_t *)malloc(4); // use stackptr temporarily
heapptr = stackptr; // save value of heap pointer
free(stackptr); // free up the memory again (sets stackptr to 0)
stackptr = (uint8_t *)(SP); // save value of stack pointer
}A stackptr egy pointer, az SP is egy pointer, stimmt.
De ez miért így van: stackptr = (uint8_t *)(SP); ??
Miért 8 bites? Nálam így a 2297-ből 249 lesz, csak épp azt nem értem ez hogy a fenébe lenne már kívánatos eredmény, amikor itt a 2297 csordul túl, vagyis korrupt adat.
Na meg sehogy nem tudok rájönni hogy tudom kiíratni Serial-ol az SP-n lévő adatot.
Nálam ez hibát dob:uint16_t report;
report = *SP;
Pedig elvileg ez az SP dereference volna a pointer tutorial szerint, vagyis ezen a címen lévő adatot kéne visszaadnia.exit status 1
invalid type argument of unary '*' (have 'uint16_t {aka unsigned int}')És ami még furább, hogy az alábbi pár sor 16 bites számot ír ki a monitorra:
register uint8_t *upStack;
upStack = (uint8_t *)SP;
Serial.println((int)upStack);Nagyra értékelnék egy kis iránymutatást, már egy ideje a netet túrom emiatt, de csak random fórum posztokat találok kevés átfedéssel.
Új hozzászólás Aktív témák
- Hama uRage CyberBoard billentyüzet+HAMA Urage gaming egér
- 6gen i3 pc i3-6100/8gb ddr4/120 gb SSD GTX 960-2 gb DDR5
- Canon EOS 200D gépek, objektívekkel, kiegészítőkkel. ( 777 vagy 3800 expoval)
- DJI Mini 3 RC drón szett - 2 akksi, Care Refresh, táska
- Canon EOS 2000D gépek, objektívekkel, kiegészítőkkel, ( ÚJ / 100 / 1100 / 4200 expoval )
- LG 27GX790A - 27" OLED evo / QHD 2K / 480Hz & 0.03ms / NVIDIA G-Sync / FreeSync / DP 2.1 / HDMI 2.1
- HIBÁTLAN iPhone XS Max 64GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS2898, 100% Akkumulátor
- Bomba ár! Dell Latitude E7250 - i5-G5 I 8GB I 128SSD I 12,5" Foltos FHD Touch I Cam I W10 I Gari!
- Azonnali készpénzes AMD Radeon RX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Bomba ár! HP EliteBook X360 830 G8 - i7-1185G7 I 16GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest