Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
De igen. Ez lett volna a következő hiba a mostani után
![]()
1: a V+ -ra menő kondi másik felét a VCC-re szokás kötni. A kondik min. 100nF, max. 2.2µF lehet.
2: a tápfesz minimum 4V, ne is próbálkozz 3.3V-os cuccal! 3: a DB9 5-ös kimenete GND! A 6-4, 7-8 összekötése nem kötelező ha PC-re kötöd. 4: A V+ és GND között kb. +9V, a V- és GND között kb. -7V körüli értéket kell hogy mérj. 5: Nem kell szkóp! Ezeket multiméterrel is kimérheted: T1IN=GND --> T1OUT=V+ T1IN=VCC --> T1OUT=V- R1IN=V+ --> R1OUT=GND R1IN=V- --> R1OUT=VCC V+ >+6V V- < -6V
Csak jó ötlet volt, hogy csatolja a kolléga kapcsolási rajzot.
![]() Javaslom a jövőben ezzel kezdeni.
Parancsolj
De ez tényleg magas labda volt.
Legegyszerűbb erre a PonyProg! Pont úgy kell mint Paint-ben, csak nem képekkel dolgozik...
Sziasztok!
RS232 monitorként eddig ezt használtam: Bővebben: Link Az egyszerűsége hamar kényelmetlenné vált. Tudtok ajánlani egy jó rs232 monitort ami free és kicsit okosabb. Találtam párat. Kettőt telepítettem is, de vagy nem inul el vagy fagy a windows. Windows7 64bit.
Köszi!
Első nekifutásra ez elég kényelmetlen program jelen században. Ez a full console mode nem ál kézre. ![]()
RealTerm. Bővebben: Link
Okos, kezes jószág.
Ha már teminál, én akkor a "TERMINAL" programot ajánlom a soros port monitorozására, nekem ez jött be...:
Bővebben: Link --letöltés--
A TI adatlap szerint lehet GND-re és VCC-re is kötni. Most VCC-n van, de ez sem segített. 5 V-ról megy minden. Minden ki van mérve, és ha nincs rajta a csatlakozó, akkor oké, különben pedig nem megy rendesen a TX vonal
![]() Minden jónak, de együtt nem megy. Próbáltam most egy kézbe akadó 470nF-ossal hidegíteni, hát ha az, de ez sem nyert.
Hidd el inkább cmd-ben ügyködöm mint sem, hogy egy hyper terminal nevezetű idegroncsoló programot használjak, amihez hogy használni tudjam kb 20 ablakon kell végig verekednem magam.
Azert nem kellene kozvetlen a file linkjet betenni - csak meg akartam nezni mi ez es egybol leszedett egy MSI file-t, viszont, meg mindig nem tudom mi ez...
Ohh, hogy... (youtube -> magyar nyelv szépségei). Ilyen átkozott hibát. A dsub9 csatlakozónak a tükörképe szerint kell bekötni. Mert a neten található képeken nem a céleszköz csatlakozó bekötése van, hanem a PC felőli csatlakozóé, amit ahhoz hogy helyesen tudjunk bekötni, tükrözni kell.
![]()
Remélhetőleg utoljára kell nyaggatnom a fórumot.
Bootloadert feltölti, AVR prog az ebn fájlt felprogramozza és a verify-on is átmegy. Csatlakoztatom, fel is ismeri, lehet is vele programozni, de amint debuggolni szeretnék elveszti a kapcsolatot a JTAG-gel. Valakinek volt már ilyennel dolga?
Gondolom lefagy.
![]() Nálam ez akkor fordul elő ha az USB-illesztőn(MCP2200) kifelejtem a 3.3V-os oldal kondiját, ez 470nF.
Most próbálkozom 100nF-ossal. Tettem egyet az uC másik oldalára is, de semmi. Rátettem a reset lábra is, de semmi. 5V-ról megy minden, és a céláramkörről kapja. De az a legdühítőbb, hogy minden működik, csak ez nem... már mint az online debug.
jaaa, hogy max232-d van! így már más, de ettől még működnie kellene. azért álljunk csak meg!
1: leválasztó ellenállások nélkül bátor dolog debuggolni(én 1k-t használok a 4 vonalra). 2: a PA2-re nem kötöm közvetlen a tápot, mert nagyfeszt érzékelne(>6.3V), ezért leosztom. 3: 7-8, 6-4 be se kötöm az RS-232-ben, de ami súlyos: az 5-ös még mindig lóg, holott földre KELL(!!!) kötni. Talán ez az utolsó ami mindent magyaráz. A kóboráramokkal még elkommunikálgat, de amint beindul a forgalom(debuggolás) azonnal meghülyül a cucc!
Valóban kellett volna ellenállások. Csak munka után nem úgy fog már az agy. Ezt még meg próbálom, hogy a PA2-re teszek egy feszültség osztót. Az RS232 5-ös lába be van kötve csak a kapcsolási rajzon nincs jelölve. Amíg ki nem alakul a végleges verzió, addig nem akartam változtatni a kapcsolási rajzon.
Köszi az észrevételeket! ![]()
Sziasztok
Gyors kérdés amire remélem ti csipőből tudtok válaszolni, mert én napok óta ezzel szívok és nem megy. Van egy DS18B20 érzékelőkkel felépített webes rendszer Arduinoban megírva. Az érdekessége az, hogy automatikusan felderíti az I2C buszon lévő érzékelőket és mindnek a mért értékét kiírja webre. A belső azonosítóját is ki szeretném iratni webre. Karakter tömböt ki tudok iratni. A max 5db érzékelő azonosítói viszont bájt alapon vannak tárolva a következő tömbben:
Ha ezt HEX formában sorosra kiprintelem, a következő formát kapom: 28C97E4330054 A kérdés tehát: hogyan tudok byte tömböt char tömbre alakítani? A teljes kódot ide töltöttem fel. Van néhány változó és függvény ami a folyamatos tesztelések, próbálgatások miatt nincs használatban. Több netes projekt alapján vágtam össze és bővítettem ki, mert ebben a formában sehol nem találtam kész megoldás (auto discover -> print web század pontosan, tehát nem elég inttel elintézni, char tömbb kell). A cél egyébként az, hogy egy kész rendszer bármikor bővíthető legyen kód újraforgatása nélkül. Ha egy új érzékelőt rákötök a buszra, max egy reset kelljen és újra felderíti a buszon lévő eszközöket és az új azonosítókat is használva, kiprinteli azok értékeit. A cucc egyébként már működik, csak azonosítók nélkül. Természetesen a kód bármely részéhez szivesen veszek építő jellegű kritikát. Kb 3-4 napja másztam bele ebbe a témába, évek óta nem foglalkoztam még a C-vel sem. Előre is köszönöm.
Elnézést, apró pontosítás, bár a kód átolvasása után talán egyértelmű:
"Ha ezt HEX formában sorosra kiprintelem,...." Az 5x8 elemes tömb egyik sorát (8 elemét) printelem ki, akkor kapom a fenti DS18B20 azonosítót. Ezen az 5x8-as tömbön sorban mennék majd végig, 5db hasonló számsort kapva amiből nekem char [8] kellene.
HI!
A nyomógombos reszetelést hogyan is kell csinálni? A reset lábra kell egy 10k lehúzó ellenállás(gnd), és a gombbal kapcsolom rá a +5V ot?
Mivel nem hagy nyugodni a probléma (napok óta ezen a projekten rugózok
![]() Ha új eszköz kerül a hálózatra szinte biztos, hogy borul a kiírt érzékelők sorrendje, de soros portról le tudom olvasni az új megfeleltetéseket. A gyakorlatban: Soros porton reset után: Locating devices...Found 3 devices. Device 0: 0x28, 0xF2, 0xBE, 0x43, 0x03, 0x00, 0x00, 0x63 Device 1: 0x28, 0xC9, 0x7E, 0x43, 0x03, 0x00, 0x00, 0x54 Device 2: 0x28, 0xE9, 0x9E, 0x43, 0x03, 0x00, 0x00, 0x38 Resolution: 12 Resolution: 12 Resolution: 12 Parasite power is: OFF Weben: Sensor0: 26.75 °C Sensor1: 26.81 °C Sensor2: 26.81 °C Mezitlábas megoldás, de használható. Az a néhány módosítás 1, 4-8. sorig:
10k-nál legyen azért kisebb pl. 1k vagy 2,2k. A logikádat pont fordítsd meg. Az ellenállás legyen felhúzó, és a gombbal adj testet.
Rendben, köszönöm!
Jól tudom, hogy a programban alapból semmit sem kell állítani, hogy legyen restet ha lehúzom a reset lábat?
Én meg pont nem ajánlanék 10k-nál kisebbet, egyes programozók nem tudják lehúzni.
Ha pl. 1k van a programozó kimenetén(ritka, de van ilyen) és 2.2k a felhúzó, az már határeset... A 10k nagyon is jó lesz oda. |
Bejelentkezés
Hirdetés |