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++] 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...
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, 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.
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. 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ó.
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++. 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#.
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 |