Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Akkor ehhez kell Optiboot bootloader cserélni ami tudja kezelni a wdt?
Próbáldki!:
A hozzászólás módosítva: Nov 20, 2016
Sziasztok!
Az a problémám, hogy ha elindítok egy szervótesztert, utána nem tudom leállítani. Egy arduban kéne lenni a szervóteszternek, és egy frekimérőnek. Ha a frekimérő van először indítva, semmi probléma mindaddig, amíg a szervós progi nem futott. Viszont a szervóteszter használata után megzavarodik a frekimérő, csak a reset segít. Próbálkoztam leállítani, de a myservo.detach() nem segít. Teljesen mindegy milyen a pin konfiguráció, sehogy sem bírok vele. Ki lehet ezt lőni valahogy reset nélkül?
És gondolod, hogy ebből a pár sor panaszkodásból mi hozzá tudunk szólni a témához?
Feltételezem, hogy a szervót az ardutól független tápról hajtod, és mindenűt ott vannak a szűrő kondik ahol kel? Akkor! Ha esetleg látnánk a programot, talán? Lehet, hogy ugyanazt a timert használja mindkét rutin? Akkor mindig újra kellene inicializálni, mikor rutint váltasz. A hozzászólás módosítva: Nov 21, 2016
Nem külső zavar okozza, mert ha semmi nincs rákötve akkor is ez a helyzet.
Az viszont elképzelhető, hogy ugyanazt a timert használja mindkettő. De inkább felteszem a kódot.
A hozzászólás módosítva: Nov 21, 2016
A <PWMServo.h> -t nem találtam meg!
De tudva, hogy mindössze 3 timer van az UC-ben, és mindkét rutin időzítéseket használ. Ezért maradok az első gondolatomnál, hogy a szervó PWM elrontja a frekimérő timer, esetleg még a megszakítás isr beállításait is?
Ezért javaslom a kód kiegészítését:
A hozzászólás módosítva: Nov 21, 2016
Már ezt próbáltam, de így el sem indul a frekimérő. Az Arduino oldalán is megtalálható Servo.h, meg egy másik (VarSpeedServo) is lett próbálva, ugyanaz a helyzet. Ha nem jutok előrébb, marad a reset gomb. Délelőtt megpróbáltam az automata reset kódodat is beilleszteni, az lett a vége, hogy ISP teljes törlés, bootloader újratelepítés.
![]() A hozzászólás módosítva: Nov 21, 2016
Ha 1/1-ben úgy próbáltad, ahogyan ott gyorsan felvázoltam a lehetőségeket?
Az alkalmazott project ismerete nélkül. Akkor nem is csodálkozom!
köszönöm a példát!
sajnos nem müködik ! Ennek valami olyasmit kellene produkálni mind ha reset gombot nyomkodnám UNO be nyomás után fel villana 13 pin ledje de semmi ilyesmi nem történik....
Sajnos nem sok időm van mostanában!
Ami feltűnt, hogy hiányzik a gombnyomásra váró ciklus szervezése! A zárójelek {...} magukban még nem érnek semmit:
Igy sosem váltasz a végrehajtandó if(ágak között!) A hozzászólás módosítva: Nov 21, 2016
Én csak a linken levő lehetőségeket vázoltam fel (Nem pedig működő programot!):
Bővebben: Link Ezt kellene értelmezni és alkalmazni!
Sziasztok. Küzdenék az arduinoval ubuntu linuxon. A windowsos verzióhoz képes nálam több menüpont is hiányzik. Pl a beállítások alatt a Additional Boards Manager URLs , eszközök->alappanel alatt nincs alappanel hozzáadás. Elméletileg a legfrissebb verziót raktam fe (1.6.12). Valamit rosszul csinálok, vagy tényleg különbözik a wines és a linuxos verzió. (próbáltam rootként is indítani)
A Linuxos, és a Win-es verzió különbözik egymástól. Pontosan nem tudom, hogy mikben, egyszer láttam Win-es verziót működni, de rögtön láttam, hogy nem ugyan olyanok.
Köszi. Akkor már csak az lenne a kérdés, hogy reszeljem bele mondjuk az esp modult. Amit a gugli haverunknál találtam roppant egyszerű, de mind a windowsos verziót mutatja. (lehet rossz helyen kerestem)
A hozzászólás módosítva: Nov 22, 2016
A gombnyomás érzékelésével semmi gondom. A timer akadhat ki. Fixen 3,276,xxx értéket mutat, ha már futott a szervóteszter. Üres frekimérő bemenettel is, meg akkor is ha bármilyen frekvenciájú generátort rákapcsolok.
A reset beépítésekor úgy próbálkoztam, hogy a loopba raktam a disable-t, a szervóteszterbe a wdt_reset-et, a frekimérőbe pedig az indítást. Úgy, hogy a feltételként lastledState==HIGH szerepelt. Tehát az volt az elgondolásom, hogy amikor feláll az ardu, első körben tiltja a wdt-t, elindul a frekimérés, hiányzik a feltétel, mert nem volt előző magas led állapot. Ha már futott a szervó, akkor teljesül a lastledState ==HIGH, és csinál egy resetet. Valamit benézhettem... Ha bárhová berakom a loopba a frekvenciaszámláló újrainicializálását, akkor el sem indul semmi a setup után.
Tisztelt Fórumozók!
Másfél éve foglalkozom Arduino-val az alaptanfolyam elvégzése után. Most egy olyan dologban kérném a segítségeteket, amin én már hetek óta dolgozom, de nem tudtam megoldani. Több szem többet lát, tapasztaltabb többet tud. Van egy programom, melyben a 6 PWM kimeneten lévő ledeken léptetéssel be tudom állítani mindegyiken egy saját fényerőt többször is, ha újra oda léptetem. A led számát és fényerejét kiíratom egy LCD-re vagy PC-re. A végeredményt beíratom az EEPROM-ba, így kikapcsolás után is megmaradnak a beállítások. Bekapcsoláskor rendben visszaállítja a kikapcsolás előtti állapotot. A probléma a következő: ha újraindítás után meg akarom változtatni a korábbi elmentett fényerőket és elkezdem léptetni a számlálót, akkor először mindig először nullára állítja az aktuális ledet és nem az elmentettől folytatja. A mellékelt program egy kijelzés nélküli és kettő ledre lerövidített, de ez is úgy működik, ahogy nem szeretném. Ha segít valaki a megoldásban, előre is köszönöm.
Csak Totózok:
volatile int pulses; A hozzászólás módosítva: Nov 22, 2016
Szia!
Amit küldtem az kell bele, de nem elég. A setup-ban kell kiolvasni az eepromból az elmentett értéket. Ha nem teszed, akkor az pulses változód 0 lesz, Azaz azt is el kell menteni, majd a setupban (ami az induláskor ELSŐRE fut le, ki kell olvasni.)
Sziasztok!
Most kezdek Arduino-zni, vettem egy UNO-t (ezt) és egy szűz ATMega328-ast (ezt). Ott akadtam el, hogy nem tudom a "szűz" 328-ast felprogramozni. Olvastam a honlapon, hogyan lehet az UNO-t ISP-ként használni úgy, hogy a cél MCU próbapanelben van. Be is kötöttem úgy, követtem a leírást és hibaüzenetet kaptam. Valami fuse biteket emleget... - hol tudom állítani a fuse biteket? - hogyan tudom a bootloadert beégetni a szűz 328-asba? - ha benne lesz a bootloader, akkor be tudom tenni az UNO-ban lévő 328-as helyére és ugyanúgy tudom használni? Eddig PIC-kel foglalkoztam, azzal valahogy könnyebb volt elindulni...
Nem jó a gombkezelés rutinod!
De OK! Én nem vitatkozok veled!
Valamint az sem egészséges, ha 500 ms-onként írsz az EEpromba, nem fogja sokáig bírni.
Szia.
- hol tudom állítani a fuse biteket? Szűz arduino esetében nem kell foglalkoznod a fuse bitekkel, kezdő szinten az arduinoban sem. - hogyan tudom a bootloadert beégetni a szűz 328-asba? Én a honlapján lévő egyik példát követtem, egy UNO-ba beleégettem az ISP programozót, és rádrótoztam a szüzet. Hibaüzenet jött, de a bootloader benne volt. - ha benne lesz a bootloader, akkor be tudom tenni az UNO-ban lévő 328-as helyére... Igen.
Kösz a válaszokat! Időközben tovább kutakodtam a neten és találtam egy részletesebb leírást, ami alapján sikerült egy led-villogtatót beletuszkolnom a szűz 328-asba. Tettem mellé kvarcot, 22 pF-ekkel és 10 kohm-ot a reset lábra a táp felé. Eddig csak simán "feltöltés"-sel próbálkoztam, de a "feltöltés programozóval" kellett volna.
A bootloader látszólag belement, de ha betettem az eredeti helyére, akkor nem tudtam programot tölteni bele. Mit rontottam el?
Egy a lényeg, a bootloadernek ott kell lennie, a "bootloader égetése" menüponttal tedd bele...
Én kérdeztem amit nem értek valaki hátha alkalmazot már valami hasonlot és igy rávetetél a wdt témára és keresgéltem kapcsolatban de bootloader firmware nem kezeli valamiért ez a legföbb probléma több felsorolt tipusoknál sem igy továbra is nem lehet használni....
Köszönöm a pozitív hozzáállásod és a segítséget, de sajnos a helyzet nem változott. Az EEPROM-ba írást majd a EEPRM.get funkcióval írom, igy csak változáskor ír az EEPROM-ba.
https://www.arduino.cc/en/Tutorial/ArduinoISP
Fuse biteket ne piszkáld arduino ide tudja melyik procihoz milyen beálitás tartozik csak a listábol kell válaztani mit akarsz felprogramozni...... ha nem sikerül segitek utba igazitani!
Erről beszéltem, a jobb oldali legalsó megoldást használtam.
|
Bejelentkezés
Hirdetés |