Fórum témák
» Több friss téma |
Néztem a Microchipes mintapéldát, de az a baj hogy nagyon elvesztem benne. Eddig csak konzolos programokat írtam, úgyhogy ez az egész windowsos felület eléggé érthetetlen még nekem. Egyszerűen nem tudtam kihámozni a kódból a "lényegi" részt, hogy most akkor hogyan kell megnyitni a COM portot, beállítani a baud rate-et, paritást, egyebeket, meg hogy hogyan kell adatot küldeni/fogadni.
Köszönöm hogy helyettem Google kerestél, én is sokat böngésztem, de én mindenképp visual studioban használható megoldást akartam találni, ezért nem találtam meg ezt. Azt hiszem hogy ez az egész téma túl nagy falat még nekem, nem tudok egyről a kettőre jutni. Megeszek még néhány szilvás gombócot, aztán a jövőben, kicsit több tudással visszatérek ehhez a projekthez Köszönöm a segítségeteket!
Hali!
Igaz már egy alkalommal próbáltam mint kezdő én is tippet adni, (de válaszra se méltattál) azért megpróbálom újból: Itt a fórumon Watt 'mesternek' van jó leírása az USB-PC kapcsolat kezelésére. Igaz 4520-ra, (C és VB6-ra),de kiindulásnak remek. Ezen kívül a másik 'nagymesternek' Icserny úrnak van egy nagyon jó PICCOLO projektje, ahol nagyon érthetően (kezdők számára is) bemutatja az USB lelkivilágát. A fórumon ezen kívül a témával kapcsolatban még számos 'topik' van ahol rengetek infót lehet összeszedni. Ezek alapos megismerése és próbálkozás után lehet érdemi kérdéseket feltenni, amire biztos választ is kapsz és megtudod oldani a feladatot. Azért bátorkodom ezen tanácsokkal, mert pár hónappal ezelőtt a téma számomra is teljesen ismeretlen volt és azóta sikerült összehozni jelenleg is működő USB-PC kapcsolatot használó projekteket (CDC és HID módút is) Üdv.
Egy Visual C++ leírás a COM port használatához.
Idézet: Mégis mit vártál? Te akartad bonyolítani az életedet Visual C++-szal. „Néztem a Microchipes mintapéldát, de az a baj hogy nagyon elvesztem benne.”
Igen, ezt a leírást tegnap már megtaláltam én is, csak nem tudtam mit kezdeni a CString osztállyal, mert nekem csak Visual Studio express verzióm van. De most keresgéltem még egy kicsit, és találtam egy header file-t, amiben valaki megírt egy CString "klón" osztályt, most azzal le tudtam fordítani a programot, csak nem kapom azt az eredményt, amit szeretnék. Még próbálkozok, hátha megtalálom a hibát.
Köszönöm a segítséget! Valóban, túlságosan általánosan tettem fel a kérdést, jobban utána kell még olvasnom. Remélem nekem is sikerül előbb utóbb összehozni a dolgot
Ez teljesen jogos kérdés. Őszintén szólva azt vártam hogy az eddigi C és C++ ismereteimmel már meg fogok tudni oldani ilyesmi dolgot, de tévednem kellett. (Nem baj, az önértékelésemen ez sokat segít). Azért akartam visual c++-t mert az elmúlt egy évben ezt használtam, illetve nem is nagyon használtam soha mást.
Hali!
Ahogy látom Visual Studió- val próbálod a PC oldali progit összehozni. Én leragadtam a Visual Basic6-nál, de gondolom sok eltérés nem lehet. Ott következő képpen néz ki soros port megszólítása: MSComm1.CommPort = 1 MSComm1.Handshaking = 2 - comRTS MSComm1.RThreshold = 1 MSComm1.RTSEnable = True MSComm1.Settings = "9600,N,8,1" MSComm1.SThreshold = 1 MSComm1.PortOpen = True MSComm1.DTREnable = False -ezt a form-ba kell betenni, a következő függvény meg olvassa a küldött adatot: Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comEvReceive adat =MSComm1.Input 'ITT a KÜLDÖTT ADAT' End Select End Sub Amennyiben megkeresed az ajánlott WATT féle leírást, onnan letölthető a VB6 program. PIC oldalon én javaslom az MLAB-t mint fejlesztői környezetet C18 fordítóval. Ehhez találsz sok példa programot, a Mikrochip is ezt támogatja. Üdv.
Helló!
Kezdő PIC-ezőként fordulok a köv. (nagy) kérdéssel hozzátok: (1000-1500 oldal olvasása-tanulása után) Van egy PICKit 2 klónom (vásároltam) és 3 típusú 16F szériás PIC-em, 16F88, 16F684 és 16F628. A probléma az volna, hogy megépítettem egy impulzusszámlálót Vicsys kapcsolása alapján amiben 16F628-at kell használjak.(Bővebben:). Kellene programozzam a PIC-et, de: A 16F88-at, 16F684-et probléma nélkül tudom felismertetni, égetni - PicKit 2.61-et használok. A 16F628-at a program nem ismeri fel! Programozó foglalatként saját készítésu 8-14-18-28-40 pines foglalatokból összeállított PCB lapot használok. A 88-as és 628-as PIC-eknek a programozó lábkiosztás azonos (kellene legyen) a PDF-ek alapján. Tehát ugyanazt a 18 pines foglalatot használom az égetéséhez. 3 db 16F628-asom van, a hármat két különböző cégtől vásároltam interneten. (kettőt ill. egyet egy másik helyen). Ezt azért írom, hogy elméletileg kizárnám, hogy mindhárom hibás legyen. Egy különbség az égethető (88 és 684) és nem égethető (628) PICjeim között, hogy az előbbiek I/P tokozásúak, míg a 16F628-asaim 04/P, 20/P ill. 20I/P. A 628-ból is I/P-t vásároltam volna, de nem találtam. Mert más különbséget nem találok működés szempontjából. Az égetőszoftwernél a Vdd +5 volt megvan a beállításnál a Midrange szériának megfelelően. Vásárolnék még 1 db 628-at ha biztos lennék, hogy amiket eddig kaptam hibásak (igaz így is már a csőd szélén állok ) Viszont ha nem tudom "munkára fogni", még rosszabb a helyzet... Észrevételeiteket köszönöm előre! Lóránd
Szia!
Lehet hogy kicsit meg kellene tényleg tanulnom a Visual Basicet, mert ahogy elnézem nagyon sokan használjátok. Viszont közben sikerült elérni az első sikereket. A visual c++-os leírás alapján (amit Hp41C linkelt néhány hozzászólással lejjebb) és a PICCOLO projekt alapján sikerült összehoznom PC oldalról egy olyan programot, ami kiküld egy karaktert, ezt a PIC ki is írja szépen egy LCD kijelzőre, viszont a másik irányba (PIC-PC) nem sikerül az adatátvitel. Tudom hogy ez a nehezebb eset, de hogyan lehet itt bármiféle hibakeresést végezni?
Hali!
A PICCOLO projekt felépítése, saját függvényei nem teszik lehetővé az LCD és az USB egyidejű használatát. (Azonos függvényt használ mindkettő, de ha erre jár icserny biztos reagál rá pracízebben). Én úgy próbálkoztam hogy a PIC-be beírtam valamelyik progit, mely adatot küld USB-n (CDC módban, azaz virtuális porton) a PC fele. Kivettem belőle a várakozást így a kapcsolat felvétel után folyamatosan küldi a karaktereket és próbálkoztam a PC oldalon a progival megjeleníteni. Egyébként az USB Trace nevű progival PC-n lehet fogyelni az adatforgalmat. Üdv.
Szia!
Idézetek a PICKit2 readme.txt állományából: Idézet: „PICkit 2 is having problems programming certain revisions of PIC16F628A” Idézet: „PICKit 2 fails to program a PIC12F629 device” Idézet: „PICkit 2 does not detect the device ID of aPIC16F884 device” 16F628 - Próbáld meg a PGM lábat a földre húzni 10K -val. Győződj meg arról, hogy a programozás közben a Vdd magasabb, mint 4.7V.
Hali!
Elnézést tévedtem, nem Te voltál: 'Igaz már egy alkalommal próbáltam mint kezdő én is tippet adni, (de válaszra se méltattál) azért megpróbálom újból:' Üdv.
Lehet, hogy a PICKIT2 topicban, hamarabb kapnál választ, hogy miért nem ismeri fel a klónod a 628-ast. Találkozzunk ott!
Idézet: „A PICCOLO projekt felépítése, saját függvényei nem teszik lehetővé az LCD és az USB egyidejű használatát.” Én kicsit másképp oldottam meg, itt az oldalon volt egy cikk: két lábon járó lcd kijelző. A lényege az, hogy a PIC két lábáról lehet vezérelni egy shift regisztert, és ez a shift regiszter vezérli végülis az LCD kijelzőt. Én ezzel oldottam meg hogy USB-n küldök ki karaktereket a kijelzőre. Idézet: „Kivettem belőle a várakozást így a kapcsolat felvétel után folyamatosan küldi a karaktereket” Jó ötlet, ezt én is meg fogom próbálni! Idézet: „Visual C++-ban is lehet debugolni.” Csak azért vagyok gondban, mert áll a program, nem vesz semmi adatot a COM portról. Viszont ha folyamatosan "bombázom" a portot valamilyen karakterrel (ahogy Pepebá is javasolta), akkor abból azért már el tud kapni egyet-egyet, csak még nem értem hogy miért ilyen megbízhatatlan az egész, de dolgozok rajta.
Ha már váltani szeretnél C++ ról, akkor szerintem C# ot próbáld ki. Nagyságrendekkel átláthatóbb a kód mint ugyanaz C++ban. Plusz a .NET-es mintapéldák között is több van C# ban írva. Szerintem nagyon kényelmes nyelv, nekem bejött. Nézd meg a Microchip CDC demot (a C# osat), és próbáld meg azt átírni.
Kötelező olvasmány: Bővebben: Link, persze hozzá lehet jutni olcsóbban is....
Köszönöm a tippet, valóban a jövőbeli terveim között az elsők között szerepel a C# megismerése, nagyon sokan dicsérik. Egyelőre még kicsit bajlódok a C++-szal, remélem sikerül valamit kihoznom ebből is.
Hali!
Nekem (vagy nekünk) mint 'zöldfülűnek' kifejtené valaki bővebben, akkor melyik C-vel érdemes hosszabb távon próbálkozni? C, C++, C# ? egyáltalán mi a lényegi eltérés közöttük? Üdv.
A lényegi különbség a C és C++, valamint a C# között az, hogy a C strukturált programozást tesz lehetővé, míg a C++ és C# már egy fejlettebb, objektum orientált programozási modellt követ. Mikrokontrollerek esetén általában a strukturált nyelveket szokás használni, mint a C, Pascal, Basic. Léteznek OOP fordítók is kontrollerekre, de általában nem lehet olyan hatékony kódot fordítani belőlük, mint a strukturált nyelvekben íródottakból, másrészt a megoldandó feladatok sem igénylik az OOP szemléletet.
PC használata esetén már más a helyzet. Lehet Windows alkalmazást C-ben is írni, de nem túl hálás feladat. Erre jobban alkalmasak a magasabb szintű OOP nyelvek. A C++ nagyon hatékony kódok írását teszi lehetővé, viszont nem menedzseli az erőforrásokat, sokkal jobban ügyelni kell az erőforrások felszabadítására, stb. A C# kevésbé hatékony, mint a C++, viszont teljesen menedzselt a környezet. Valójában a C#-ban írt .exe kódok nem a gépi kódot tartalmazzák, hanem egy köztes kódot, amelyet futásidőben a JIT (Just in Time) Compiler fordít (kicsit hasonlóan a JAVA-hoz, de annál hatékonyabb). A fejlesztőkörnyezet is igen hatékonyan támogatja a Windows programok fejlesztését. Igazándiból nincs általános recept, hogy melyik programozási nyelv a jobb, ezt mindig az adott feladat dönti el. Mikrokontrolleres fejlesztéseknél a C a preferált nyelv (Azt nem érdemes kiszelektálni). Ha PC-re is szeretnél kliens alkalmazásokat fejleszteni, akkor személy szerint C#-t javaslok, de igazából teljesen mindegy. Remélem sikerült választ adnom a kérdésedre!
Hali!
Köszi az infót. Akkor jó választás PIC esetében az MPLAPIDEx+ C18 fordító. Viszont a PC oldali programozás esetében (amennyiben rászánom magam a váltásra VB6-ról) célszerű a C#-t választani. Üdv.
Néha kényszerpályán mozog az ember, mert egyszerűbb egy meglevő mintaalkalmazást módosítani, mint a nulláról kiindulva megírni. Ilyen esetekben az a meghatározó, hogy a kiindulási szoftvert miben írták meg...
Ha már a Visual Basic (6) nyelvben otthonosan mozogsz, akkor lehet hogy PC oldalon inkább a Visual Basic .NET-et (2005, 2008, 2010, stb.) kellene választanod. Sokkal emberibb nyelv mint a C és társai. Egyébként meg a "Visual nyelvek" teljes mértékben átjárhatók egymásközt, oda-vissza fordíthatók, csupán a nyelvezet más. Nézd csak meg ugyanazt a példaprogramot Visual Basicre, C++-ra, ill. C#-ra, és látni fogod hogy miről is beszélek!
Lehet csak rosszul gondolom, de ha for-ban lévő "i=0"-t szorzod kettővel attól még nemigen változik az értéke. Én ebben a megoldásban i=1-el próbálkoznék.
Csak egy ötlet.....
Köszönöm válaszod!
Átírtam most az "égetés" alatt villognak a ledek aztán sanyi... Lehet valamit kinyírtam hardveresen? :O
Megtaláltam: a PICKITen nem volt beállítva és bekapcsolva a tápfeszültség ezért az égetés után nem tudta futtatni a programot.
Köszönöm!
Szia!
Először is milyen processzort használsz? Az #include sor mire való ?! C18-ra írod ( ezt is érdemes megadnod, hogy aki nézi ugyanarról beszéljen )?! Milyen oszcillátort használsz, mert ezt meg nem látom beállítva ( akár ez is lehet a hiba fő oka :yes: )?! A legfontosabb: NE KAPKODJ, értsd meg, hogy melyik sor mire való ( példaprogramokból!) ! Steve u.i. : közben most látom, hogy beírtál, de azért olvasd el amit írtam és lehet, hogy nem árt megfogadni! |
Bejelentkezés
Hirdetés |