Fórum témák
» Több friss téma |
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!
Nem eagle.de, hanem cadsoft.de a lelőhely címe!
Szoftveres pwm el megoldható a dolog végülis, szerintem komolyabb megoldásra nem lesz szüksége.
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...
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++] ![]() 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...
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.
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.
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...
Hali!
Köszönöm az igen hasznos infót, ![]() 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.
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.
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
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.
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?
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.
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:
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. ![]()
Csinálhatod így is
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.
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.
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.
Elvesztettem a fonalat
![]()
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.
Sokak szerint a C# az Basic-kel kevert C++
![]() Szerintem ha most kezded a PC-s programozást akkor egyértelműen C#.
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.
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? |
Bejelentkezés
Hirdetés |