Fórum témák

» Több friss téma
Fórum » Soros port programozás
 
Témaindító: pakibec, idő: Márc 23, 2006
Témakörök:
Lapozás: OK   11 / 14
(#) _vl_ válasza nebulo hozzászólására (») Ápr 3, 2013 /
 
Részvétem. A hardware flow control - szerintem - nem atombiztos 1 byte-os hardware FIFO mellett (ha ezt úgy értjük, hogy a fogadó oldal FIFO-ját interruptból tudjuk csak üríteni, azaz a szoftveres FIFO-t az interrupt handler kezeli), értelmesen nagy sebességnél.
Azért lehet kapni néhány százasért olyan mikrokontrollert is, amiben 16-byte-os FIFO-k vannak, rendes hardware flow control támogatás mellett.
(#) zeneszlelek hozzászólása Máj 21, 2013 /
 
Sziasztok!

Egy újonc kérné a segítségeteket
Egyetemen tanuljuk a C programozási nyelvet, ami rendkívül érdekes lett a számomra.
Arra gondoltam, hogy írnék valami programot, amivel lehet működtetni soros porton egy áramkört, relét, bármi ilyesmit.
Csak sajnos nemtudom merre induljak el a témában. Érdekelne minden infó a portról, lábkiosztás,működés, C nyelvben ezeket hogy lehet elérni stb.

Tudnátok erről valami infót, szakirodalmat küldeni?

Előre is nagyon köszönöm a válaszokat!
(#) t-dani válasza zeneszlelek hozzászólására (») Máj 21, 2013 /
 
Szia!

Attól függ, hogy például milyen fejlesztőkörnyzetet ismersz, illetve melyikkel szeretnél próbálkozni. A C nyelvből sem egy típus van csak, vannak még elég erős "oldalhajtásai", például a C++ vagy a C#.

A grafikus felületeket nyújtó fejlesztői környezetekben általában szokott lenni soros port komponens, amit elég csak behúzni a programodhoz, és máris használható. Inicializálni kell a soros portot, beállítani a sebességét, a paritás- és stopbitek számát, a "handshake" módját, aztán megnyitható az adott port (ha létezik hardveresen is), és lehet rajta kiküldeni az adatokat, byte-onként. Illetve fogadni is, úgyszintén byte-onként. A soros port komponenshez is tartozni szoktak események (events), például ebben tudod lekezelni, ha érkezett a portra egy byte-nyi adat, mert a programodban meghívódik a "SerialPortByteReceived" függvény. Tuti nem ez a neve, de az értelme az ez.

Szóval egy kicsit neked is kéne segítened, hogy egyáltalán konkrétan milyen programnyelven szeretnél játszadozni. A graf. felületűeket azért támogatnám, mert hamarabb elérhető velük sikerélmény.
(#) zeneszlelek válasza t-dani hozzászólására (») Máj 21, 2013 /
 
Hali,
Köszi a gyors reakciót
Sima C nyelvről van szó. Code:blocks-fejlesztői környezetet használjuk.
Sokminden van a fejemben digitális technikából is (pl. start, stop bit, rx, tx, msb, lsb) csak szeretném ha ez az egész történet eggyé összeállna, hogy s mint zajlik ez az átvitel, melyik lábbal mit lehet elkövetni, stb. stb. csak mindenképpen gyakorlati egyszerű példákkal és a téma legelejétől, hogy meg is értsem

Ez volt az elképzelésem: adott a soros port, a megfelelő kivezetések közé kötök pl. egy relével egy PC-coolert. Írok egy programot ami 30 másodpercenként ad egy impulzust a tartórelének, a relé behúz, venti forog. 30sec után megint impulzus, a relé kikapcsol, venti leáll. Ezt ciklusban megírni.

Szóval ilyen "egyszerűbb" dologra gondoltam kezdésnek.
(#) zeneszlelek válasza zeneszlelek hozzászólására (») Máj 21, 2013 /
 
illetve az egészet úgy képzeltem el, hogy elérem mondjuk a soros port tx memóriacímét, és átadok neki egy változó értéket, amit ő szép sorban kidobál a kimeneten vagy ilyesmi
(#) _vl_ válasza zeneszlelek hozzászólására (») Máj 21, 2013 /
 
Rosszul képzeled. Operációs rendszer használata esetén neked általában valami könyvtári függvényeid vannak, azon keresztül tudod a soros portot kezelni, a hardverhez csak a device driver nyúlhat.
Ha jó operációs rendszert használsz , akkor elég megnyitni a soros porthoz tartozó fájlnevet, és amit utána beleírsz ebbe a virtuális fájlba, az kimegy a soros porton, ami érkezik, azt meg ki tudod olvasni a fájlból. A soros port speciális tulajdonságainak beállításait (sebesség, bitek száma, paritás, flow control, ilyesmik) pedig általában szintén valami könyvtári függvénnyel tudod tekergetni.
A hozzászólás módosítva: Máj 21, 2013
(#) watt válasza zeneszlelek hozzászólására (») Máj 21, 2013 /
 
Szia!
Ez a kis kiragadott rész is olyan sok ismeretet kívánna, ami itt nehezen foglalható össze.
Első lépés az kéne legyen, hogy a gépeden telepítve legyen egy fejlesző környezet, legyen az pl egy Visual Studio 2008 vagy hasonló. Ezután választani kéne egy nyelvet(mindegy melyiket, de a C vagy VisualBasic amit sokan használnak, de a C# is jó, tök mindegy.
Ha ez megvan, máris lesz aki konkrét példát tud adni, és máris működni fog a soros porti kommunikáció.
Ekkor jön az, hogy azt amit kiküldesz mi dolgozza fel. Direkt port eléréssel(IO.dll-eket kell használni, neten fellelhetőek), lehet billegtetni a soros port kimeneteit, akár a TX-et is, amivel relét tudsz kapcsolgatni, de ez nem kommunikáció, csak egy láb direkt billegtetése.
A kommunikációs kapcsolathoz kell egy egység ami fogadja a kiküldött adatot és feldolgozza(pl. mikrovezérlő). Ebbe is kell program, amit meg kell írni valamilyen nyelven. Ha pl. PIC a választott alkatrész, akkor asm, vagy C esetleg Flowcode nyelven lehetne egyszerű programot írni.
Nem e topic témája, hogy mindezt kibontsuk. Sok időt kell szánj a tanulásra, végigmenve a felvázolt úton. Ne kapkodj, légy kitartó, türelmes! Jó tanulást!
RS 232 szabvány
(#) kegyetlen19 hozzászólása Máj 21, 2013 /
 
Sziatok!
Én is a soros porton szeretnék reléket vezérelni, de viszont és is kezdő vagyok a programozáshoz. Legelsőnek a Visual Basic 2010 programmal találkoztam. A leges legalapabb dolgokat már megismertem benne, de a port vezérlését még nem.
Lenne 8db gomb, a gombok megnyomásakor megnyílik egy másik ablak egy információval és egy adott /fix/ idő után automatikusan bezárul, vagy egy gombbal is megszakítható a folyamat. /ez úgy ahogy már működik/

Nekem az lenne a kérdésem, hogy míg nyitva van ez az információs ablak, addig a hozzá rendelt relé behúzva legyen, ez hogy oldható meg?
Viszont a 8db információs ablakból van olyan ablak, amikor több relé is hozzá lenne rendelve.
Ha megoldható lenne az a funkció is jó lenne, hogy némely gomb megnyomása előtt /az információs ablak megnyílása előtt/ kitudnám választani, hogy melyik relé lenne hozzárendelve az adót gombhoz /infó ablakhoz/.
Segítségeiteket előre is köszönöm.
(#) watt válasza kegyetlen19 hozzászólására (») Máj 21, 2013 /
 
Attól tartok, hogy ez nem a soros port programozásához tartozó kérdés, ezért lehet, hogy nem itt kéne választ várnod, hanem valamelyik programozással foglalkozó portálon.
(#) Kovabe hozzászólása Okt 30, 2013 /
 
Sziasztok
Átolvasgattam az egész topikot de nem találtam megfejtést a gondomra. Az első ami a legfontosabb, szeretnék találni egy olyan programot mint a flowcode például ami grafikus felületü és azzal szeretnék írni egy programot ami egy soros porton kommunikálin kivánkozó PIC-el beszélget illetve feldolgozza a kis byte-okat és értelmezi. A másik, keresek olyan személyt aki akár itt, el tudna igazitani a programozás rejtelmeiben.
Üdv Kovács Gábor
(#) zenetom válasza Kovabe hozzászólására (») Okt 30, 2013 /
 
Szia!
Gondolom PC-n még nem tudsz programozni.
Ha így van, akkor kicsit összetettebb a dolog. Neked objektumorientált programozói környezetre lesz szükséged (ma már szinte csak ilyenben dolgoznak), ami a durván a PIC-flowcode PC-s megfelelője.
De ahhoz muszáj megtanulnod programozni (vagy legalább az alapokat), mert nélküle azzal fog telni az idő, hogy bombázol mindenféle fórumokat olyan kérdésekkel, hogy miért írja ezt meg ezt a hibát a fordító (saját tapasztalaból írom).
Ilyen fejlesztői környezetek: Delphi, Visual Studio (Basic, C...).. stb.
Szóval ha megy a programozás, letöltesz egy sorosport kezelő komponenst, vagy keresel a neten megírt függvényeket, vagy ha van a fejlesztői környezetben lehetőség, használod azt. De ehhez meg kell tanulni programozni (program felépítése, változók, függvények, ..).
(#) Kovabe válasza zenetom hozzászólására (») Okt 30, 2013 /
 
Valahogy sejtettem hogy annyira egyszerü mint fognélkül almába harapni. A viccet férretéve most telepitettem VB 2010 express-t csak a honositás nem akarozik müködni. Egyenlöre bontogatom szárnyaim és remélem hogy kevés kérdéssel bombázom eme forumot. Már a PIC terén sikerült néhány dolgot elérnem igy bizom benne hogy itt is kevés kérdéssel sikerrel járok.
De ha már itt tartunk, a VB ben van soros port de mint látom még sok beállitás van (gondolom erről beszélté) ezekre van valami makro vagy valami hasonlo vagy van alap progi és azt kell fejleszteni?
(#) zenetom válasza Kovabe hozzászólására (») Okt 30, 2013 /
 
Ha csak otthonra kell egy egyszerű program, akkor talán érdemes lehet kísérletezgetni, viszont ha komolyabb helyre kell az alkalmazás, akkor előtte egy pár hónapig (évig) tanulgatni-gyakorolni kell a programozást. PC-t programozni egyszerűbbnek tűnik, de sokkal szerteágazóbb, mint MCU-t programozni.
Szóval VB 2010-ben csak simán ráhúzod a Form-ra a soros port komponenst, meg pl. egy "Button"-t, és a Button OnClick eseményébe beleírod, hogy ComPort1.open, aztán valamilyen send paranccsal kiküldesz adatot.
De ezekkel most úgy se tudsz sokra menni, mert nem lehet ilyen egyszerűen elmagyarázni a nulláról. Kicsit olvasgass a neten, hidd el, ha magad találod meg a megoldást, jobban meg fogod érteni!
(#) Kovabe válasza zenetom hozzászólására (») Okt 30, 2013 /
 
Köszönöm márr ezzel sokat segítettél és tudom hogy magam tudom csak megtanulni de vizuális tipus vagyok igy jobban átlátom mint a C kodot hogy példálozzak. Lényegébe csak itthonra kell egyenlöre (néhány év) és csak utánna ugranék ki.
(#) zenetom válasza Kovabe hozzászólására (») Okt 30, 2013 /
 
Na, hogy segítsek is valamit
A komponensekhez tartozik általában tulajdonság, és esemény.
A tulajdonságoknál tudod beállítani azokat a jellemzőket, amik működésben/megjelenésben meghatározzák a komponenst (pl. "Button"-nál a gomb felirata, szélessége, láthatósága ..stb).
Az eseményeknél folyamatokat rendelhetsz a komponenshez (pl. maradva a "Button"-nál, kattintásra jelenjen meg egy üzenet, vagy sorosport beérkező adatnál írja ki az adatot a program).
De ezeken kívül még vannak változók, függvények, miegymások, amikkel tisztában kell lenned. Szóval én azt javaslom, hogy keress a neten valami leírást "programozás alapok visual basic" kulcsszavakkal.
Pl. hirtelen most ezt találtam a googlival, kicsit száraznak tűnik, de már ebből is lehet tanulni: Bővebben: Link
(#) Kovabe válasza zenetom hozzászólására (») Okt 30, 2013 /
 
Nagyonszépen köszönöm ezt a hirtelen inditto rugás. Igérem tanulok és nem kérdezek hülyeségeket.
(#) zenetom válasza Kovabe hozzászólására (») Okt 30, 2013 /
 
PC-s programozásban ajánlom a prog.hu weboldalt. Hasonló ehhez, csak nem az elektronika a főtéma, hanem a programozás, ill. informatika.
(#) Kovabe válasza zenetom hozzászólására (») Okt 30, 2013 /
 
Nem vagyok egy nagy net guru illete itt már vannak ismerösök kik elviselnek és tudják melyik lábbal kell rugni hogy segitenek. Azért köszi ezt a linket már többször is láttam visszább.
(#) El_Pinyo válasza Kovabe hozzászólására (») Okt 30, 2013 /
 
Szia!
Ha ragaszkodsz a grafikus felülethez, akkor ott van a National Instruments LabView környezete. Alapvetően nem ingyenes, de létezik Academic licence-el is, illetve lehet okosítást is találni. Itt a HE-n van saját topikja is.
(#) ha6qt hozzászólása Dec 6, 2013 /
 
Sziasztok!

A Soros portból egymagában 1db alkalmas arra c#-ban programozva, hogy egy léptető motor elektronikát vagy jobbra, vagy balra hajtson meg?

Ha jól tudom, két kimeneti adat vezeték van a soros porton, talán ez alkalmassá teszi rá. Esetleg ismertek konkrét, bevált kapcsolást? Tudok guglizni, csak magyar boltokban elérhető alkatrészekből, hasonlóan hobbistáktól szeretnék ötletet

Hálás köszönetem
A hozzászólás módosítva: Dec 6, 2013
(#) sirály12 válasza ha6qt hozzászólására (») Dec 6, 2013 /
 
Külső áramkör nélkül nem igen lesz jó!
A két adatvezeték az igaz, de az egyiken csak jön a másikon csak megy az adat, ezért is soros port, mert sorosan viszi át az adatokat egymás után. Ezért kell valami, ami veszi a soros adatokat, és akkor már vezérelhetsz vele bármit.
Vagy inkább a párhuzamos portot használsz ilyennek, vagy legjobb esetben is egyilyen áramkörre lesz szükséged, vagy mikrovezérlőre.
Mennyire tudsz programozni?
(#) ha6qt válasza sirály12 hozzászólására (») Dec 6, 2013 /
 
Köszönöm a hsz.-t

Tudok programozni, programozó vagyok, de nem hardveres. C#-ban dolgozom, de az elektronikát rádióamatőr szinten kergetem.

A külső táp nem gond. Az lenne amúgy a feladat, hogy van egy léptetőmotor, és ezt kellene balra vagy jobbra forgatni a programból. Nem baj, ha építeni kell valamit, bár a PIC-től meg akartam kímélni magam Szerk: Paralell port nincs a gépemen. Soros van, és még az USB-soros konverterek is jól működnek. De az utólagos paralell megoldások közül nekem egyik sem ment rendesen.

Vagy jobb lenne USB portra MCP2200?
A hozzászólás módosítva: Dec 6, 2013
(#) kegyetlen19 válasza ha6qt hozzászólására (») Dec 6, 2013 /
 
(#) zenetom válasza ha6qt hozzászólására (») Dec 6, 2013 /
 
Szia!
Esetleg az RTS és DTR vonalat tudod felhasználni, azokat lehet programból "kapcsolgatni", de nem erre valók.
Soros portról irányítani MCU nélkül nem igazán tudsz, hacsak nincs valami céláramkör/IC de akkor már ugyanott vagy.
A hozzászólás módosítva: Dec 6, 2013
(#) kegyetlen19 válasza ha6qt hozzászólására (») Dec 6, 2013 /
 
Hello. Most látom, hogy az a hozzászólás is neked szol.
(#) ha6qt válasza kegyetlen19 hozzászólására (») Dec 6, 2013 /
 
Igen, megmondom őszintén, megijedtem az MCP2200 használatától. Igazából nem is értem, hogyan kell használni, pedig átfutottam a doksikat, és futtattam a forráskódokat is a gyártó oldaláról. Kvázi nagyon sok helyen csak olyan használatát látom az eszköznek, ahol USB-Soros konverternek használják. Az meg van pár darab itthon

Igazából lehet, digitális elektronikai hiányosság, de még mindig nem derült ki a számomra, hogy miért több egy soros-usb bolti konvertertől?

Először azt hittem hogy van 8 darab olyan lába, amik egy metódusban való utasításra alacsony jelszintre váltanak. Nekem ilyen cucc kellene, amire írhatok olyan metódust, hogy meghívva pl. Run(1, 1000), akkor az egyes lábon egy LED kigyullad 1000 milisecundumig. Ha (2,1000), akkor a kettes lábon, és így tovább. Ha alkalmas erre, rendelek egy marékkal, de sehol nem találok megerősítést ez ügyben, és be vagyok rezelve a felesleges munkával járó kudarctól.
(#) kegyetlen19 válasza ha6qt hozzászólására (») Dec 6, 2013 /
 
Mint az én írtam, a Visual Basic Demo-t használtam fel, az nekem jól működik. Az hogy program indításkor alapból alacsony vagy magas szinten legyenek a kimenetek az programfüggő. /program indítás nélkül van rádugva az USB-re a MCP2200, akkor a kimeneteleken alacsony szint van/ A 8db kimenetet én VB-ből össze vissza, akár egyesével akár csoportosan tudom kapcsolgatni, ez is a hozzá írt programtól függ.
(#) ha6qt válasza kegyetlen19 hozzászólására (») Dec 6, 2013 /
 
Na jó. Beraktam a kosárba kettőt, eljátszom vele. Elég gyors kapcsolgatásra kell majd egyik lába, mert morze adásra is lenne használva. Kvázi a morze jelnek megfelelően ez percenként 1000 alacsony/magas váltás is lehet.

Na jó, lehet ez csak nekem tűnik soknak
(#) kegyetlen19 válasza ha6qt hozzászólására (») Dec 6, 2013 /
 
Azt az 1000-et kicsit sokallom. Gép vagy ember fogja fogadni? Én valaha /réges-régen/ morze-sztam, de percenként 200 jel elég volt bőven.
(#) ha6qt válasza kegyetlen19 hozzászólására (») Dec 7, 2013 /
 
Ahogy mondod 200 jel / perc, pl. egy 6-os szám adásakor, 200-szor egy perc alatt:

200* _.... = 1000 jel /perc. És az állapot változás Hi/Low kb. a duplája. Lehet nem jól gondolom.
Következő: »»   11 / 14
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem