Hirdetés

2024. május 14., kedd

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#2788) fpeter84 válasza Teasüti (#2784) üzenetére


fpeter84
senior tag

AREF: csökkenteni lehet vele az analóg mérés tartományát, ezáltal növelni a pontosságot. Alapból a 10bit, 1024 lépcsős felbontás kb 5mV-os felbontást ad, de ha mondjuk csak pár száz mV-ot szeretnél vele mérni akkor egy külső referenciával (akár feszosztó is lehet) beállítod 0.5V-ra az AREF-et, és 0.5mV-os felbontással számolhatsz... Okosabb típusoknál lehet akár külön AREF+ és AREF-, amivel még szűkebb tartományt is ki lehet jelölni a tápfesz és föld között tetszőlegesen...

A változók biztosan a RAM-ba, de már egy tök üres program is bekajál 9 byte-ot - ne kérdezd hogy mit tesz oda a fordító... De játszhatsz vele, és nézd hogy fordítás után milyen statisztikát ír rá az IDE... Valószínűleg van itt ott optimalizálási hibákból adódó pazarlás is, pl: ugye az alaphelyzet 9 byte használt

char x;
void setup() {
x = 1;
}
void loop() {
}

ez 10 byte-ot eszik, de ha annak az x-nek ugyanezt az értéket már inicializáláskor is megadom, akkor meg 11 byte-ot ír, pedig elméletben ugyanarról változóról beszélünk - erre tud itt valaki magyarázatot adni?

char x = 1;
void setup() {
x = 1;
}
void loop() {
}

A konstansok pedig elméletben a flash-be kerülnek, de most ahogy próbálgatom, 1 byte-al se nő ettől a program mérete...

const char y = 10;
char x = 1;
void setup() {
x = 1;
}
void loop() {
x = y;
}

Copyright © 2000-2024 PROHARDVER Informatikai Kft.