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
Nem férek hozzá regiszterekhez. Valami mást kell kitalálnom a reset detektálására, mert ha leáll az oszci, akkor csak a tápfesz ki-be hozza rendbe.
Nem gondoltam, hogy egymással is képesek kommunikálni, eddig csak azt hittem, hogy csakis és kizárólag PC-vel állnak szóba. Én kis naív....
Valahol van ezeknek leírásuk, hogy hogyan és mint is állítsam be őket ?
A Xbee modulokról a www.digi.com oldalon van rengeteg leírás...
Röviden: Szórt üzenet: FFFF-FFFF című eszköz. Ekkor mindenki megkapja. Ha meg a céleszköz ID-jét adod meg, akkor azzal lesz transzparensen beszélgető. Fontos, hogy azonos PAN-ban legyenek (Personal Area Network). +++ belépés az AT parancskörbe. Utána ATxx parancsokkal lehet beszélgetni. vagy PC-vel az USBExplorer HW-l és az X-CTU SW menüből is beállítja. ATCN a beállítóból való kilépés. Sokat segít ha 2 USBExplorer + Xbee modullal játszol. 2 PC és szétkonfigurálható a rendszer De ha simán az "XBee/Zigbee digi ppt" kifejezésre keresel rengeteg rajzot/leírást kapsz...
Köszi.
Halkan merem megkérdezni, hogy amit írtál, az Bluetooth vagy Xbee ? Melyik a jobb? A bluetooth szimpatikusabb talán. Árban egykutya mindkettő. Viszont Zigbee-n van alapból antenna.
Reset sem hozza rendbe, csak a tap elvetel?
Xbee. Nekem stabilabbnak tűnik. A 868MHz-s meg tud 10 km-t! Igaz ekkor 9600 bps sebesség.
A BT sebessége nagyobb.
Ez a 10km nem hangzik rosszul. Hadd kérdezzem meg, hogy neked van tapasztalatod xbee hatótávolsággal kapcsolatban? Vagy ez csak adatlapi becslés?
Sziasztok!
GSm modullal akarok sms-t küldeni ,de valami nem jó. Eddig csak annyit láttam, hogy a gsm modul visszadob egy hibaüzit, de azt nem, hogy miért. Most rájöttem a gondra, csak nem tudom mi a fenéért vacakol. Nem tudom hogy tud olyat kiküldeni a soros portra, ami ott sincs. Pontosabban olyan szöveget küld ki, ami egy másik funkcióban van, de semmi köze a porthoz, max lcd-re íráshoz, viszont az a funkciót nem használom most sehol. Ennyi lenne most csak a lényeg, a többit nem használom, de ha kell berakom az egész forráskódot.
És itt lenne, amit kiír.
Nem értem, hogy hogyan tud belekeveredni olyan a dologba, amit meg sem hívok, meg köze sincs a küldéshez. Nem értem mi lehet a gond. Ilyen kavarodással még nem találkoztam. A gps-es funkciókat nem is használom mégis belekeveredik a dologba.
És a vicc az egészben, hogy az első részt, a "GPGGA"-ig egyszerre írja az elejével, majd a várakozás lejártával jön a többi rész. Na most hogy kerül bele az első részbe az, aminek majd csak később kellene?
Sziasztok!
Írtam egy programot aminek az lenne a feladata, hogy 8 LED-et villogtasson egy futófényként(oda-vissza). Valamint egy potméter tekerésével nőjön a villogás sebessége.A kódot megírtam, de a fordító mindig talál benne egy súlyos és egy kevésbé súlyos hibát amit az istennek nem tudom kijavítani, mivel még nagyon kezdő vagyok. Íme a hibás kód:
És íme a két hibaüzenet: ../main.c: In function 'ADConverter': ../main.c:18: warning: 'return' with a value, in function returning void ../main.c: In function 'main': ../main.c:23: error: void value not ignored as it ought to be make: *** [main.o] Error 1 Build failed with 1 errors and 1 warnings... Köszönöm!
Tipikusan verem tulcsordulaskor, illetve olyan string hasznalatakor fordul elo, amely nincsen 0-val lezarva. A keveredes oka az, hogy a konstansokat egy teruletre rendezi ossze a fordito.
Az ADConverter fuggvenyed a deklaracio szerint nem add visszateresi erteket, viszont te a vegen a return -nek ads parametert. Szerintem a fuggvenyt nem void-kent hanem uint8_t-kent akartad deklaralni.
A masik hiba ennek a folyamanya, mivel a fordito az elozo problemat ugy probalja korrigalni, hogy ragaszkodik a fuggvenydeklaraciodhoz es void-nak veszi, a return utan adott erteket siman eldobja. Viszont te ezt a fuggvenyt meghivod a 23. sorban es visszateresi erteket varsz tole, annak ellenere, hogy void, igy ezzel mar nem tud mit kezdeni a fordito. A 10. sorban irjad at a void-ot uint8_t-re es a problema megoldodik.
Akkor elvileg az UART_send_string -ben lehet a hiba, ott lehet valami gubanc, mert azután jön elő a hiba, mindkétszer. Ezt én írtam, az én elgondolásom szerint, a legegyszerűbben. Működni működik, de lehet, hogy nem teljesen jól.
Igen, ez a hiba. A *data -t 0x00-ra kell tesztelned, mert az jelzi a veget. A \n erteke 0x0A, ez az ujsor karakter, ami nincs is a stringjeidben.
A data novelesenel *data++ helyet data++ elegendo, ha elotte van a * akkor elvileg egy pointeres cimzest is vegez(amit egy jobb optimalizalas mar kiszed, de attol meg nem szep, ugyanis te a tarolt ertekkel nem akarsz semmit sem kezdeni, csak a pointer erteket akarod novelni).
Tényleg valahogy erre nem is gondoltam. Már működik is rendesen. Köszönöm szépen a segítséget. Szerintem ha egy hétig néztem volna, akkor sem jövök rá a hibára.
Üdv!
Szeretnék gy atmega8-at usb-n összekötni pcvel. Cél ic (pl. ft232rl) nélkül, Virtual-usb segítségével. Gyakorlás képp utánépítettem egy kész projektet, tehát az áramkör és a szoftverek elvileg rendben, mégsem működik. Rengeteg dologgal próbálkoztam már eredménytelenül, szóval nagyon örülnék ha valaki tudna ötletet adni hogy mit ronthattam el. Konkrétan ezt készítettem: Bővebben: Link Ha csatlakoztatom pc-hez windows azt mondja hiba történt, eszközkezelő látja de vendor id/product id nulla. Esetleg lehet az a gond hogy 22pF helyett 27pF kondenzátort használok a kristályhoz? Vagy esetleg az d+/d- 68 ohmos ellenállásai helyett 62 ohmosat raktam? Másban nem tértem el és olyan egyszerű a kapcsolás, pláne hogy utánépítés nem értem mit rontottam el. Bármi ötletnek örülnék.
1, A tapfesz nem stabil
2, a fusebitek beallitva?
Hol van ebben a FT232RL????
Emulált USB! Enyhe alkatrészhiánnyal.... Aref? VccA? GNDA bekötését ki teszi meg?
nem figyelsz
Idézet: „Cél ic (pl. ft232rl) nélkül, Virtual-usb segítségével.”
Fordítsd rá ezt a kódot: Bővebben: Link
Ennek biztosan kellene mennie, hogyha a hardver rendben van. Amennyiben ez nem megy, akkor csipogj ki mindent rajta. Az AVCC tápot ugyan érdemes bekötni, de nem feltétlenül szükséges (én javaslom mindenesetre).
Tápfeszt csak a pctől kap. Tudnám még hálózati usb adapterről táplálni, bár ami van annak 5v +-5% szóval nem a legstabilabb.
Két fuse beállítást használtam (ha jól gondolom csak ez jöhet szóba): -cksel 0..3 és sut 0,1 mind programmed -mint az előző csak cksel 1 unprogrammed Induláskor pwm-ezi a ledeket, a sebességéből ítélve szerintem jó az órajel.
Az avr programjában felcseréltem próbaképp de úgy sem működött.
Köszönöm ezt megnézem. AVCC-t bekötöttem,az AGND-t nem.
Aref nem csak a/d konverziónál lenne szükséges?
Itt a main egyszerűen ráfut az ADConverterre !
Dehogynem!
Sőt, bizonyos ADC beállításmál egyenesen tilos, hogy legyen az AREF-en táp. Atmega8: "If the user has a fixed voltage source connected to the AREF pin, the user may not use the other reference voltage options in the application, as they will be shorted to the external voltage." Tehát az AREF bekötése, hogyha nincsen használatban az ADC modul teljesen felesleges. Amennyiben az ADC modul használva van, akkor is el kell gondolkodni előtte, hogy miként használjuk majd, mielőtt rákötjük szeleburdi módon a tápot. Ami a hivatalosságot illeti: "AVCC is the supply voltage pin for the A/D Converter, Port C (3..0), and ADC (7..6). It should be externally connected to VCC, even if the ADC is not used." Tehát az AVCC-t be kell kötni. Ami az AGND-t illeti, az egy érdekes jószág az atmega8-ban, hiszen csak a blokk diagramban van említve. Valószínűleg az AVCC mellett található GND-re gondolhatnak. Annak a bekötése természetesen szintén javasolt.
Szia!
http://www.hobbielektronika.hu/forum/topic_hsz_544862.html#544862 ebben a hozzászólásban megtalálod ami neked kell. szoftveres usb mega8-al. Forráskód is adott, nézd tovább a linkeket. Üdv Kiborg
Köszönöm a segítséget mindenkinek!
Megoldódott, működik. Ahogy Neogeo2 mondta felcseréltem d+ és d- vezetéket. Elég szégyenletes hogy azt hittem szoftveresen ki tudom próbálni fordítva, csak most kapcsoltam hogy fizikailag kell átkötnöm, ez után egyből működött. Még egyszer köszönöm mindenkinek. |
Bejelentkezés
Hirdetés |