Digispark Tiny85 - INT használata

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Andralin
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2016. április 11. hétfő, 15:29

Digispark Tiny85 - INT használata

Hozzászólás Szerző: Andralin »

Sziasztok!

Lehet, hogy nagyon láma lesz a kérdésem, de rendeltem innen (tehát nem hamisítvány) egy DigiSpark Tiny85-öt és gondom van vele.
A kérdésem az, hogy a megszakítások hibás programozásával tönkre lehet teljesen tenni ezt az eszközt, legalábbis annyira, hogy a bootloader se fusson rajta?

A kezdeti lépéseken már túl vagyok, pár napja vidáman fejlesztgettem rajta.
De ma jött egy olyan elborult ötletem, hogy egy DO pin gyorsabb ki/be kapcsolgatását timer alapú megszakítással oldom meg.

A neten találtam egy célnak megfelelő példaprogramot ATTiny85-re, ami meghatározott időnként meghívja a megszakítást. Először egy vadiúj programként teszteltem, amiben csak a beépített LED-et kapcsolgatja ki/be és szuperül működött is.

Ezután beillesztettem a megszakításos programrészletet a saját, fejlesztés alatti kódomba és letöltöttem.
A panelt behelyezve az áramkörbe, amiben már napok óta tesztelem, bekapcsolás után elkezdett futni, de már másodpercen belül lefagyott a kontroller. Táp ki/be kapcsolás után már el sem indult. :evil:
Ezekután visszadugva PC USB portjára, már fel sem ismeri a Windows, azt írja "USB Device Not Recognized". :( :( :(
Próbáltam már azóta számtalanszor, de mindig ezt írja ki, ez már teljesen KO. :?

Szóval létezhet olyan, hogy a megszakításos kódrészlet nyírta ki szegényt? Történhet ilyesmi? Vagy csak véletlen egybeesés, valami most fáradt el benne vagy rossz helyen értem hozzá statikusan feltöltödve, stb.?

Vajon ha veszek egy újat, akkor merjem rátölteni a kódot és tovább kísérletezni, nem fogom az újat is kinyírni?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Arduino kezdő

Hozzászólás Szerző: Robert »

Igen. Klasszikus bootloader ugyanis nincsen rajta, hanem a program _elején_ 2k a "bootloadernek" fenntartott rész...
És minden újraprogramozáskor ez is újraíródik.
Gyakorlatilag a főprogram indulásakor az idő elején egy kommunikációs rész indul el - ami bootloader jelleget mutat (funkcionálisan)...

És a megszakításkezelés/INT táblából 1 van, nem válik külön, hogy bootloaderé vagy főprogramé...:(
http://www.tavir.hu - a gazda :)
Andralin
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2016. április 11. hétfő, 15:29

Re: Arduino kezdő

Hozzászólás Szerző: Andralin »

Robert
Akkor megszakítást nem is célszerű használni rajta? 8O
Vagy lehet, csak óvatosan kellene bekonfigurálni?
Abban tudnál segíteni, hogy mire kell figyelni, hogy ne tegyek vele tönkre mégegy eszközt? :roll:
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Arduino kezdő

Hozzászólás Szerző: Robert »

Eléggé korlátozott a digispark holmi. Mondhatni inkább az érdekesség kategóriája (én is oktatásokon veszem elő csak)
- emulált USB az erőforrások 80%-át lefoglalja, a maradék 20% a tied.
- INT alapú az USB kommunikáció - semmilyen INT-et nem használhatsz! (USB timeout-ra fut a SW emuláció miatt)

Javasolt használati mód: külső programozóval, USB támogatás nélkül (vagy a bootloaderrész nélkül)
http://www.tavir.hu - a gazda :)
Andralin
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2016. április 11. hétfő, 15:29

Re: Arduino kezdő

Hozzászólás Szerző: Andralin »

Robert írta:Eléggé korlátozott a digispark holmi. Mondhatni inkább az érdekesség kategóriája (én is oktatásokon veszem elő csak)
- emulált USB az erőforrások 80%-át lefoglalja, a maradék 20% a tied.
- INT alapú az USB kommunikáció - semmilyen INT-et nem használhatsz! (USB timeout-ra fut a SW emuláció miatt)

Javasolt használati mód: külső programozóval, USB támogatás nélkül (vagy a bootloaderrész nélkül)
Köszi a magyarázatot, így minden egyértelmű!
Végül beszereztem egy új példányt és megoldottam a feladatot INT nélkül.

De azért ezt durvának tartom, hogy a Digispark oldalán a tutorialok között sehol nem láttam a nagybetűs figyelmeztetést, hogy ne használdj INT-et te szerencsétlen, mert különben megszívod... :twisted:

Na mindegy, ezt leszámítva nagyon szuper kis eszköz ez picike helyre, kisebb feladatra, kevés I/O esetére.
Pár egyszerű logikai összefüggést kellett megvalósítani némi időzítéssel megspékelve, erre tökéletes volt ez a Tiny cucc. :wink:
Válasz küldése