Kysymys:
Kuinka poistan Arduino Unon muistin?
Peter Turner
2014-02-27 00:32:43 UTC
view on stackexchange narkive permalink

Olen vain näppärä, joka oppii Arduinoa poikani kanssa ja olin yllättynyt siitä, että kun liitin USB-johdon takaisin Arduinoon, ohjelma oli edelleen käynnissä ja ajattelin itsekseni: "Se on hyvä asia, jota en vain räjäyttää mitään. "

Joten miten ihmiset kutsuvat sitä päivässä näillä asioilla? Ladatko yleensä paljaat luut, älä tee mitään luonnoksia tai vain irrotat kaiken pistorasiasta?

Mitä tarkoitat sanalla "kun liitin USB-johdon takaisin Arduinoon, ohjelma oli edelleen käynnissä", mitä käyttäytymistä havainnoit ja mitä odotit? Liittyikö mitään Arduinoon?
@jippie joo, minulla oli joukko LEDejä kytkettynä ja ne kaikki syttyivät. Jostain syystä ajattelin, että ohjelmat ladattiin muistiin ja ne menisivät uudelleenkäynnistykseen, mutta koska sitä ei ole olemassa ....
Ohjelmat ladataan flash-muistiin, ei RAM-muistiin, joten ne säilyvät myös virran katkaisun jälkeen.
Kuusi vastused:
#1
+15
Manishearth
2014-02-27 00:37:12 UTC
view on stackexchange narkive permalink

Käynnistyksen yhteydessä Arduino suorittaa minkä tahansa ohjelman, joka on asetettu siihen viimeksi. Ratkaisu: Älä kytke sitä päälle, jos et halua sen toimivan.

Kun Arduino on pakattuna, se suorittaa yleensä Blink-ohjelman. Joten voit vain ladata sen ja kutsua sitä päiväksi, jos haluat "nollata" sen.

Tai käytä loop-ohjelmaa lepotilakomennolla.

Jos olet jättänyt sekaisin USB-käynnistyslataimen kanssa icsp-nastojen kautta, tämä ei kuitenkaan riitä, sinun on asennettava käynnistyslatain uudelleen. Mutta jos olet ladannut ohjelmia USB: n kautta tai suoraan ohjelmoijan avulla, Blinkin tai muun nuken lataamisessa ei ole ongelmaa sen nollaamiseksi.

onko mahdollista saada se suorittamaan itsetuhoava ohjelma, jossa mitään ei ole kytketty jänniteliittimiin?
@PeterTurner, kun siihen ei ole valtaa? Ei. Mutta voit lisätä ohjelman, joka käyttää nastoja väärin, ja jos jätät sen vahingoittumaan, voidaan kutsua (ei paljon, ellei nastat ole kytketty)
#2
+9
asheeshr
2014-03-02 08:38:25 UTC
view on stackexchange narkive permalink

Jos turvallisuus on suuri huolenaihe, sinun on melkein aina ladattava stop * -piirustus taululle ennen kuin kutsut sitä päiväksi. Tämä olisi hyvä idea esimerkiksi silloin, kun lauta on puolipysyvästi osa suurempaa järjestelmää. Voit tehdä sen seuraavasti:

  • Lataa Tiedosto -> Esimerkit -> Basic kbd: n luonnos, joka löytyy pienimmän minimin > : ssä
  • Lataa luonnos suurella viiveellä silmukassa.
  #include <limits.h>void setup () {} void loop () {delay (ULONG_MAX);}  
  void setup () {exit (0);} void loop () {}  

* Stop on yksinkertaisesti kuvaannollinen. Taulu ei todellakaan pysähdy.

Voisitko saada samanlaisen (ja pysyvämmän) vaikutuksen kutsumalla `exit ()` `setup ()` `- tai` `loop () '' -sivulta?
@PeterR.Bloomfield En voi uskoa, että unohdin sen!
Miksi vaivautua joko poistumisesta tai viiveestä? Sinun tarvitsee vain `void setup () {} void loop () {}` - joka tapauksessa sisäisesti prosessori vain kiertää "tekemättä mitään hyödyllistä".
#3
+2
linhartr22
2017-06-08 22:42:12 UTC
view on stackexchange narkive permalink

Suurin huoleni tässä tilanteessa on, että olen yleensä kytkenyt Arduinon uuteen projektiin ja kytän USB: n uuden luonnoksen ensimmäistä lataamista varten. Olen huolissani siitä, että minulla ei ole aavistustakaan siitä, mitä edellinen ohjelma yrittää, koska se on kytketty täysin erilaisiin laitteistoihin.

Toistaiseksi mitään pahaa ei ole tapahtunut, enkä usko, että otan käyttöön polttavan BLINK: n joka kerta, kun laita yksi Arduinoni takaisin roskakoriin. Se on kuitenkin todennäköisesti vain ajan kysymys.

#4
+1
Nick Gammon
2015-08-19 02:59:16 UTC
view on stackexchange narkive permalink

Tärkein asia, joka voi mennä pieleen, on, että jos asetat Arduinosi sivuun muutamaksi viikoksi, unohdat, mikä luonnos (koodi) on siihen ladattu, palaat sitten sen pariin, kytke laitteisto (kuten kytkin, LED tai moottori) ja anna sen odottamatta syttyä / syttyä, koska edellinen koodi osoitti nastan, johon se oli kytketty.


Ratkaisu 1. Lataa uusi koodi ensin.

Yksinkertainen ja turvallinen tekniikka on ladata uusi käsittelemäsi koodi ennen minkä tahansa laitteiston liittämistä. Nyt tiedät mitä koodi tekee, mitä nastoja se käyttää, ja kytket sitten laitteisto sisäänpäin (mieluiten sammuttamalla Arduino ensin irrottamalla se virtalähteestä).

Kun kytket virran uudelleen, se suorittaa lataamasi luonnoksen, laitteistosi on kytketty ja kaikkien pitäisi olla kunnossa.


Ratkaisu 2. Lataa "tee mitään" luonnos.

Voit ladata tämän lyhyen luonnoksen:

  int main () {}  

Se "ei tee mitään". Kaikki nastat pysyvät syötteinä, joten voit liittää laitteiston turvallisesti ja sitten aloittaa uuden projektin koodaamisen.


Turvallisuus ensin

Hyvä sääntö on, että et kytke sitä tai irrota laitteita (esim. LEDit, kytkimet, moottorit) virralla. Jos häiritset ja kytket kortin väärään pistorasiaan, saatat vahingoittaa joko liitettyäsi tai Arduinoa tai molempia.

Kun virta on katkaistu, voit tehdä viime hetken Tarkista, että kaikki on kytketty oikeaan paikkaan, napaisuus on oikein ja niin edelleen.

Varmista myös, että kehossasi ei ole staattista sähköä, varsinkin jos sinulla on hyppääjä tai jotain pörröinen tai istun matolla.

Henkilökohtaisesti käyn aina yli ja kosketan jotakin lähellä olevaa metalliosaa "maadoittaakseni" itseni ennen kuin tavoittelen Arduinoa. Esimerkki on tietokoneen metallikotelo, kuulokeliitäntä tai jotain sellaista.

Jos et virran kytkemisen jälkeen Arduinoon (esim. USB-kaapelilla) näe heti virran merkkivaloa, katkaise virta heti! Olet saattanut oikosuluttaa jotain, ja mitä vähemmän aikaa teet niin, sitä parempi.

#5
  0
nipi
2015-08-18 17:41:12 UTC
view on stackexchange narkive permalink

Jos arduino-kortti on liitetty mihin tahansa muuhun laitteeseen, irrota kaikki pistorasiat ja yhdistä arduino tietokoneeseen USB-kaapelilla ja yritä ladata uusi luonnos, toivon sen auttavan.

Tervetuloa Arduino SE: hen! Onko jostain syystä tämä vastaus parempi kuin muut annetut vastaukset? Kiitos!
#6
  0
Victor Peters
2017-01-11 04:06:09 UTC
view on stackexchange narkive permalink

Siirry Arduino IDE -ohjelmassa esimerkkeihin, valitse Eeprom, valitse eepromin tyhjennys ja lataa luonnos.

Kun nastassa 13 oleva merkkivalo syttyy, olet valmis.

Huom. Tämä voi viedä jonkin aikaa Arduinon EEPROM-koon mukaan.

Joten mikä on tarkoitus? Suoritetaanko jotain, joka ei koske I / O: ta (mutta tyhjentää EEPROM: n jokaisen käynnistyksen yhteydessä)?
Oletko todella kokeillut tätä? Nasta 13 ei näytä olevan määritetty lähtöön (Arduino IDE 1.6.5)


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...