Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
A változónak by definition nincs értéke addig, amíg nem adsz neki. Illetve valamilyen értéke biztosan lesz, hiszen van neki egy memóriaterület lefoglalva, és az is lehet, hogy ez 0/üres string/stb. lesz, mert az adott körülmények között ez lesz a kezdeti értéke, de erre nem szabad számítani. A változó értékét onnan lehet "komolyan venni", hogy inicializáltad.
Arduino alatt minden változó, ami nem kapott kezdőértéket, automatikusan 0-t kap.
Minden változó, ami nem kapott kezdőértéket! Minden!
Egyébként meg próbáld ki. Változó definiálása, inicializálás nélkül, majd írasd ki soros porton keresztül PC-re. 3 perc alatt meg van a válasz! De elég rosszul nézne ki, ha véletlenszerű számot kapnál vissza, nem? Arduino ezekre is figyel. De szerintem az össze programnyelv. A hozzászólás módosítva: Aug 22, 2019
Lehet, hogy igazad van, de én akkor se építek erre, ezt anno belém verték. Egyébként a helyzet messze nem egyértelmű: Bővebben: Link.
Hali!
Nem minden programnyelvben van változó inicializálás. Múltkor szívtam vele, átollóztam egy programrészletet. A régiben a mainban volt az első értékadás, ezt elfelejtettem áthozi, aztán kerestem a hibát, hogy hülyeséget csinál random bekapcsolásnál... Pic XC8 fordító. Amúgy szerintem nem biztos, hogy jó, ha a fordító nekiáll az inicializálatlan változókat önkényesen töltögetni, nagyobb memóriájú kontrollernél ez jelentős bekapcsolási idő növekedést jelenthet. Nem vitázni akarok, - a fordító mélyebb ismerete nélkül - de az hogy írok rá egy progit, és kiíratom az értékét, látom a nullát, az jelentheti azt hogy éppen bekapcsoláskor a ramban 0 van(de nem biztos hogy minden alkalommal - ezt szívtam), de jelentheti azt, mint írtad hogy a fordító inicializálta... Szoval dokuban kell megnézni, már ha le van írva.
Köszönöm!
Valóban nem jól tettem fel a kérdést, nem a definiált, hanem az inicializált változók értékét szeretném megjeleníteni. Programból ezeket elég macerás megtudni, arra gondoltam, hogy más fejlesztőrendszerekhez hasonlóan itt is van erre lehetőség. De a lépésenkénti futtatás is sokat segítene. Az IDE-ben nem látok ilyesmire lehetőséget.
Az arduino IDE buta mint a föld. Ha kell, akkor be lehet gyógyítani pl. visual studio alá is az arduino SDK-t, de egy rendes trace-eléshez szerintem a hw-t is bütykölni kellene.
A fapad megoldás az, hogy a változó értékét kiírod soros portra ha kell.
Idézet: „A fapad megoldás az, hogy a változó értékét kiírod soros portra ha kell.” Ezért volt a "Serialprintln" az első amit létrehoztak. ![]()
Köszönet!
Alkalmi megoldásnak megteszi, de azt gondoltam van valami egyszerű megoldás, pl. a fordítónál beírt opció, ami beszédessé teszi, külön program, vagy egyéb trükk. Mert nekem nem szimulátor kell.
Lehet neked nem s(t)imulátor kell de létezik 1 2 ilyen program pl.: UnoArduiSim .
Itt step by step láthatod a változók értékeit sorról sorra. ("Kicsit sárga , kicsit savanyú" de mégis van... persze néha kínlódik ezzel azzal a lásd upgradek változás jelentései , némi szimulált periféria készlete is van , verzió függően változik a tudása. pl.: amibe bele futottam : egyiknél (régebbi "kevesebb pont valamennyi" verziójúnál működött az utána jövő "több pont valamennyi "verzióban már nem ) még zörgette a PC hangszórót is ha zümmert "bekötöttem mint perifériát", másiknál meg elszállt hibával az ugyanaz a forráskód "fordítása", ha a tone() -t használtam volna ) ArduSim fejleszői oldala A hozzászólás módosítva: Aug 23, 2019
Amit te szeretnél, az real time debug lenne, amit az Arduino nem támogat. Azt hiszem, az AVR-ben van ilyen opció, de a sima Arduino ehhez nem elég.
Nem olyan egyszerű ez, mint te gondolod, ha folyamatosan debuggolod a változók értékét, az prociidőt vesz el, ami miatt minden csúszni fog, tehát már nem ugyanúgy fut a programod, mint debug nélkül, vagy pedig van egy külön hardware az AVR-ben, ami debuggol, és akkor mehet a proci max. sebességgel, de akkor meg drágább lesz a uC. A fordító és az Arduino IDE nem szimulátor, nem tudja, hogy az AVR-ben a változókkal pontosan mi történik, ő csak a programot állítja elő (fordít), optimalizál, stb.
Kera_Will, Kovidivi, köszönöm a hasznos válaszokat!
Legutóbb egy NRF24L01+ -nál szoftveres SPI lábkiosztásával volt gondom, mert különböző paneleknél (Leonardo és Uno) az egyik nem volt hajlandó megszólítani az rf modult. Szkóp nincs kéznél, programból meg elég necces ezt előkaparni, ezért gondoltam, hogy ez esetben és máskor is hasznos lehet.
A fordító dönthet úgy, hogy nem teszi stack-be a változót, hanem regiszterbe. Ez a bss terület része, amit a startup nulláz. Nem 0-t kap, hanem olyan részre kerül, ahol nulla van. Ha már stack-el is, ez nincs garantálva.
Sziasztok.
Valaki át tudná nézne nekem ezt a kódót, ugyanis olyan problémám van, hogy ha kibővítem egy egyzserü nyomógombos LED ki és bekapcsolással akkor a eredeti program teljesen belassul. Pl. Az addigi villogó kimenet kb. 10szer lesz lassab és a gombnyomás érzékelése is belassul. Amit utólag hozzáírtam az a funkció rendesen működik. Külün mindkettő működik rendesen. Lefordul, nincs hibaüzenet. Csak ennyit írok be pluszban a programba. (led ki-be kapcsolás) int elozoErtek0 = 0; pinMode (A5, INPUT_PULLUP); pinMode (7, OUTPUT); // void loop alá from ezt. if(digitalRead(A5) == LOW && elozoErtek0 == 1) { digitalWrite(7, !digitalRead(7) ); } elozoErtek2 = digitalRead(A5); delay(10); https://www.dropbox.com/sh/4bty5hlw0pncr1l/AADIJahURYgFomxjLyikGbRba?dl=0 Előre is köszönöm.
Vedd figyelembe azt, hogy amég a
Idézet: fut, addig nem csinál mást az MCU.„delay(10);” tehát jelen esetben minden vizsgálat után 10ms pihenő idő van.
Szia.
Levettem 1ms-re, így jónak tűnik. Van erre valami elegáns megoldás, ugyanis még kellene 4 gomb és akkor megint lassulni fog. Köszönöm.
Olvasd ki a négy gombot egyszerre, tedd el változóba, utána/előtte kiértékelés/várakozás 1*
Én nem Arduino -zok, ezért nem vagyok benne toppon.
Nem lehet benne megszakításokat kezelni? UI.: Arduino Interrupt references Megszakítás esetén meghív egy függvényt:
A hozzászólás módosítva: Aug 26, 2019
Biztosan lehet, de pár napja foglalkozom csak arduinoval.
Módosítottam a fenti hozzászólásomat. Csatoltam minta kódot, amit találtam. Elég érthető, gondolom nem kell hozzá magyarázat.
A felette lévő linken megtalálod , hogy az adott board melyik PIN -en tud megszakítást. A hozzászólás módosítva: Aug 26, 2019
Köszönöm, megpróbálkozom vele.
Sziasztok!Valaki megtudná mondani,hogyan tudom letölteni arduino nanóról az áttküldött programot (ino) .Sajnos az eredetit az oldalon nem talaltam.
Köszi
Az ino-t sehogyan. Az csak a számítógépen létezik, a mikrokontrollerre nem kerül át.
Nanorol letölteném a programot és egy másik nanóra tölteném fel.
A hozzászólás módosítva: Aug 28, 2019
Ha nincs kódvédelem, akkor az lehetséges. Gondolom, programozó hardvered (Atmel ICE, AVRISP, Dragon, stb) nincsen.
Avr isp usb sticem van.
Ez a falytaBővebben: https://m.aliexpress.com/item/32725468354.html?pid=808_00...194549
A hozzászólás módosítva: Aug 28, 2019
Használtad már?
|
Bejelentkezés
Hirdetés |