Fórum témák

» Több friss téma
Fórum » USB IC programozás - VB6 vezérlés
Lapozás: OK   3 / 3
(#) Stefan válasza Zserigta hozzászólására (») Okt 22, 2011 /
 
Na már nem bírtam nézni a kálváriádat
Félig megcsináltam a kapcsolási rajzot innen már ki tudod egészíteni. Egyik l298 bekötve, a többit ugyanígy.
Az enable lábakat rákötöttem a kontrollerre, az fontos lesz hogy ugyanazon a porton legyenek, a későbbi programozás megkönnyítése szempontjából.
Az inputokat oda kötöd ahova akarod.
A kapcsolási rajzot az Eagle nevű programmal tudod megnyitni, ebben a NYÁK is megtervezhető.
Bővebben: Link

Az esetleges hibákért felelősséget nem vállalok!
(#) icserny válasza Stefan hozzászólására (») Okt 22, 2011 /
 
Nem eagle.de, hanem cadsoft.de a lelőhely címe!
(#) Stefan válasza icserny hozzászólására (») Okt 22, 2011 /
 
Igaz, bocs a fake linkért.
(#) Stefan válasza icserny hozzászólására (») Okt 22, 2011 /
 
Szoftveres pwm el megoldható a dolog végülis, szerintem komolyabb megoldásra nem lesz szüksége.
(#) Hp41C válasza Stefan hozzászólására (») Okt 22, 2011 /
 
Ejnye - bejnye... Nem fog tanulni semmit sem ...

8 motor = 16 vezérlő kimenet + 8 enable = 24 portláb = 3 port. A motorok iránya az RB ill RD portokon lesz, RC portból 3 láb foglalt az USB számára, az RA portból 2 láb az oszcillátor számára. Hol van a 18F4550 -en még 8 kimenet, ami egy porton van? Az SW PWM mehet a vezérlő jeleken is...
(#) Stefan válasza Hp41C hozzászólására (») Okt 22, 2011 /
 
20 láb maradt szabadon ha a PGD, és PGC lábakat nem számolom, tehát elégnek kell lennie a maradék 16 IN -re.
Az enable lábakat direkt azért kötöttem egy portra, mert így könnyen programozható a PWM, megszakítással csak egy tömböt kell majd léptetnie, (PORTD = tomb[i++] amit meg majd a PC frissít.
Idézet:
„Az SW PWM mehet a vezérlő jeleken is...”

Ha megnézed a vezérlési táblát az adatlap 6. oldalán akkor kiderül, hogy az nem túl szerencsés, mert ha adott hídhoz tartozó két bemenet egyenlő, EN=1 melett, akkor a motort rövidrezárja, és fékezi, így elég gáz lesz a n(kitöltés) karakterisztika...
(#) Pepebá hozzászólása Okt 23, 2011 /
 
Hali!
Sajnos továbbra sem boldogulok a PIC18F4550 USB HID kommunikációval, a PICDEM FSUSB ajánlás alapján. Azt hiszem általánosan megértettem a Hp41C ezirányú tanácsait, átbogarásztam a projecthez csatolt állományokat és Watt-nak a PIC18F2550-re írt remek tanulmányát. Ennek alapján módosítottam a PICDEM FSUSB usb_decriptos.c állományt, de a VB6 programmal nem jelenik meg a PC oldalon a szériaszám.
Ezen kívül nem tudom hogyan lehet megjeleníteni a PIC által elküldött RA0 bemeneten mért analógjelet.
Nagyon hálás lennék ha Watt erre járna és szánna rám egy kis időt, sötét elmém felvilágosítására.
Üdv.
(#) Pepebá hozzászólása Okt 24, 2011 /
 
Hali!
Nincs senki aki némi segítségével el tudna mozdítani a holtpontról.
Az van hogy az sd003-as stringet nem kűldi el a PC-nek:
ROM struct{BYTE bLength;BYTE bDscType;WORD string[5];}sd003={
sizeof(sd003),USB_DESCRIPTOR_STRING,
{'1','.','0','0','b'
Illetve az elküldött:ToSendDataBuffer[0] = 0x37; ToSendDataBuffer[1] = w.v[0]; ToSendDataBuffer[2] = w.v[1];

USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer[0],64);
adatot nem tudom megjeleníteni a PC-n a VB6 progival.
Üdv.
(#) icserny válasza Pepebá hozzászólására (») Okt 24, 2011 /
 
Jobb lenne, ha nem piszkálnád az usb_descriptors.c állományt, mert esetleg máshol is módosítani kell! Bővebben: Link (bár ez nem HID...)

A serial-t csak akkor kell módosítani/használni, ha egyidejűleg több készüléket csatlakoztatsz a géphez, ugyanazzal a VID/PID párossal. Ilyenkor csak a serial alapján lehet megkülönböztetni őket...
(#) Pepebá válasza icserny hozzászólására (») Okt 24, 2011 /
 
Hali!
Köszönöm az igen hasznos infót, a problémám első fele meg is oldódott:
az USB_descriptors.c állományt azért piszkáltam,mert Watt az USB HID leírásában is ezzel demonstrálta azt hogy milyem módon lehet további stringeket kűldeni a PC-nek. (Ez nem a serial VID/PID hanem egy tetszőlegesen adható karaktersorozat)
Bővítettem a string mutatókat tartalmazó táblát, de nem tudtam miért nem küldi a PC-nek:
Idézet:
„#define USB_NUM_STRING_DESCRIPTORS 4”

Módosítani kell az USB config file-t, amire a belinkelt hozzászólás adott magyarázatot.
A PC oldali analógjel megjelenítésre VB6-ban keresem a megoldást.
Üdv.
(#) Pepebá hozzászólása Nov 5, 2011 /
 
Továbbra is a PIC18F4550 USB HID kommunikációval bíbelődöm PICDEM FSUSB ajánlás alapján. Analógjel mérés az RA0 és I2C LM75A hőmérő jel feldolgozás RB0-RB1-n. Watt PIC USB demó és Icserny PICCOLO project segítségével. Az USBDeviceTasks() hívása interrupban történik. A PIC PC kapcsolat működik (VB6), viszont a PC oldalon a bufferböl kiolvasott értékekkel nem tudok mit kezdeni. Értékek a jel vátozások arányában növekszenek 255-ig utána 0 és újból kezd növekedni 255-ig.
Tud valaki segíteni? Lehet decimális adatokat kűldeni? az átalakítást és a bufferbe írást hogyan kell megcsinálni.
Próbálkoztam a PICCOLO project lm75_I2c.c szerinti megoldással, de nem vezetett eredményre.
Üdv.
(#) Zserigta válasza Pepebá hozzászólására (») Nov 6, 2011 /
 
Ajánlani tudom a következő 2 részes cikket. Nem túl hosszú, de szerintem segíthet a problémádon.
Bővebben: Link
(#) Pepebá válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
Hali!
Köszi, átolvastam. Első olvasatra nem találok számomra megoldást, elsősorban a CDC USB kapcsolatra tér ki a leírás.
Esetleg van valakinek egyébb ötlete?
Üdv.
(#) Zserigta válasza Pepebá hozzászólására (») Nov 11, 2011 /
 
Véletlen nem ADC-ről van szó?
Ha jól értem, forgatod a potmétert és a szám amit kibírsz olvasni az 0-255 ig számol, és ezt egy teljes potméter fordulatnál mondjuk 4 szer kezdi előröl?
Jól sejtem?
(#) Pepebá válasza Zserigta hozzászólására (») Nov 11, 2011 /
 
Hali!
Igen ADC a téma és a jelenség az.
Végül is rájöttem hogy az RA0 ADC konverziójának 10bites eredményét az ADRESH és ADRESL regiszterekböl olvassa be a ReadPOT függvény és ez kerül be a bufferbe ami átkűldésre kerül a PC-re.
Azt mondjuk nem egészen értem hogy miért így jelenik meg a PC-n, a VB6 programban. Már csak azért sem mert ugyan ebben a programban az I2C-röl beolvasott és továbbított hőmérők értékei nem ilyen módon jelennek meg. Ott is 10 bites az adat , egész és törtrész külön buffer indexen érkezik a PC-re.
Sikerült összehoznom, működik is, de nem teljesen világos.
Üdv.
(#) Zserigta válasza Pepebá hozzászólására (») Nov 12, 2011 /
 
Megkérdezhetném, hogy mely programban írod a PIC programot?

Egyébként én a problémádat a következőképpen oldottam meg:
  1. potm_erteke=(((buffer(0) + 1) * 255) + buffer(1))


A buffer(0) értéke 0,1,2,3
A buffer(1) értéke 0-255 ig változik, ahogy tekered a potmétert.
Az általam írt kis számítás eredményeként a potmétert ahogy tekered, a végeredmény 0-1024 intervallumban fog mozogni, és folyamatos lesz, nem kezdi előröl a számolást.

Azaz nálam ez így segített VB2010-ben.
Remélem segíthettem.
(#) Stefan válasza Pepebá hozzászólására (») Nov 12, 2011 /
 
Csinálhatod így is

  1. #include <stdio.h>
  2. ...
  3. sprintf( buffer, "poti: %d", ReadPOT() );

A buffer az az a buffer amit aztán továbbküldesz a PCre, ha jól tudom a CDC is 64 bytetot használ, az elég lesz
Így egy karakterláncot fog küldeni, amit sima hyperterminálban is meg lehet nézni, nem kell tovább szenvedni vele.
Ez azért meg gofja dobni a kód méretét, szóval ha ez kiritkus akkor írj saját string átalakító függvényt.
(#) Pepebá válasza Zserigta hozzászólására (») Nov 12, 2011 /
 
Hali!
Köszi, hasonnlóképpen oldottam meg én is. Csak nem értem miért így jön az adat a PIC-röl.
Egyébként MPLAB 8.53-ban szerkesztgetem a PIC programot, a PC oldalon sajna én még a VB6-nál tartok.
Nézegettem már a VisualStudió 10-et, de elsőre nagyon ilyesztő volt. Van magyarnyelvű ismeretanyag? nem igen találtam.
Üdv.
(#) Pepebá válasza Stefan hozzászólására (») Nov 12, 2011 /
 
Hali!
Köszi az infót, USB HID módban próbálkozom. PC oldalon felhasználom a kűldött adatot, progit kellett hozzá alkotni.
A CDC kapcsolattal, amit a PICCOLO project segítségével többé-kevésbé sikerűlt megérteni, műküdik is.
Igaz mostmár USB HID módban is, egyenlőre az analóg jel mérés és az I2C-n hőmérés, adatküldéssel, PC oldalon adat feldolgozással.
Üdv.
(#) Stefan válasza Pepebá hozzászólására (») Nov 12, 2011 /
 
Elvesztettem a fonalat. Tudunk még valamiben segíteni, vagy sínen vagy? Amúgy én VB helyett a C#-ot vagy C++-t ajánlanám, A Microchip-es példák is ebben vannak. A "Tanuljuk meg a Visual C# használatát 24 óra alatt" könyv baromi jó kezdésnek, csak az ára @&#@&#. Ha meg tudod szerezni akkor az nagyon jó.
(#) Pepebá válasza Stefan hozzászólására (») Nov 12, 2011 /
 
Köszi egyenlőre sinen vagyok, (majd a következő projektben) csak nehogy jöjjön a vonat. Mindenféleképpen túllépek a VB6-n, csak vacilláltam a C és a VB2008(10) között. Miután a PIC rejtelmeinek megismerésére adtam a fejem és az MPLAB C-t kezdtem el, meg ahogy írod a példaprogramok is C-ben vannak, kézenfekvő a C++.
Mi külömbség van a C# és a C++ között. A Visual C-k igazából melyik C?
Üdv.
(#) Stefan válasza Pepebá hozzászólására (») Nov 12, 2011 /
 
Sokak szerint a C# az Basic-kel kevert C++. Sose Basiceztem, szóval személyesen ezt nem tapasztaltam. Igazából szintaktikaliag mind a kettő C nyelv, szóval ha PIC C megy akkor ilyen problémád nem lesz egyikkel se., Ugyanakkor persze meg kell érteni elég sok új dolgot, mi az az objektum, osztály, példányosítás, stb... . Amennyi különbséget én észrevettem a C++, C# között az az, hogy a C# kicsit olvashatóbb, vannak benne plusz utasítások (pl foreach ), viszont ha alacsonyabb szinteken akarsz vele dolgozni ( pl pointer aritmetika), akkor több macera van vele. Nem lehet makrókat létrehozni, a "define" utasítással csak kapcsolókat lehet csinálni. A -> operátor hiánya is néha zavaró tud lenni, nem látod a különbséget pointer és változó között. Viszont tényleg szebb és olvashatóbb a kód, és egyszerű alkalmazásoknál könnyebb ezzel dolgozni. Nagy előny továbbá, ha elakadsz és neten keresel, akkor C# esetén 95%, hogy a .NET keretrendszeres, Visual Studio-s változatot találod meg, C++ esetén meg kb 10...
Szerintem ha most kezded a PC-s programozást akkor egyértelműen C#.
(#) Pepebá válasza Stefan hozzászólására (») Nov 12, 2011 /
 
Köszi az útbaigazítást. Egyenlőre a Visual C++ 2005 verzióját telepítettem és találtam hozzá némi magyarnyelvű help-t.
Ezzel próbálkozom, közben keresek C# hozzáférhető verziót.
(#) Sanyessz hozzászólása Feb 19, 2012 /
 
hello mindenkinek
Elég kezdő vagyok ebben a PICKIT-es dologban.
Lenne egy kérdésem.
Milyen kodot kell ki küldeni PICKIT2-esnek usb-n hogy pin5-ös kivezetése változzon. Vagy gondoltam h PICkit v2.61 logic tool modban megnézem mit küld ki majd lemásolva én is kiküldöm neki a parancsot. Robot lenne vezérelve vele, de a robot inteligenciáját java program és vezérlő felület adja.
Járható ut ez? Megoldható a dolog?
Következő: »»   3 / 3
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