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.
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?
Digispark Tiny85 - INT használata
Re: Arduino kezdő
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é...
É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
Re: Arduino kezdő
Robert
Akkor megszakítást nem is célszerű használni rajta?
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?
Akkor megszakítást nem is célszerű használni rajta?
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?
Re: Arduino kezdő
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)
- 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
Re: Arduino kezdő
Köszi a magyarázatot, így minden egyértelmű!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)
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...
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.