Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Sziasztok, egy olyan problémám lenne, hogy EZZEL a kapcsolással próbálkozom, amikor fel akarom programozni a 870-est akkor azt írja ki a pickit2, hogy ez a hex túl hosszú a 870-es számára, szerintem ezért nem is működik helyesen az áramkör, a PIC-et rendesen felismeri, elvileg fel is programozza, de az áramkör nem működik rendesen.
Tudna valaki okosat mondani nekem. Annyi eltérés van, hogy 20-as kvarc helyett 18-assal és 28-assal próbálom, sajnos ez van itthon. Lehet ez okozná a problémát? Mindkettővel ugyanaz a jelenség.
Még annyit, hogy kiderítettem, ugye ez egy 17 funkciós műszer, namost, az első funkciója egy Logikai szonda, alap bekapcsolás után az 1-es gomb megnyomása után ide jutunk, ez a funkció működik, mert ha impulzust kapcsolok rá akkor villog a P, a kijelzett L után, ha 5V-ot adok a bemenetre átvált H-azaz magas -ra, eddig oké, de nem lép tovább a menüben a 2-es gomb megnyomására , lehet a gombbal lenen a gond, szoftveresen?
Még megtoldhatod egy LVDCON = 0x0E beállítással, bár elvileg a RESET is letiltja.
Elvileg tehát a korábban írt beállításaiddal is mennie kellene, ha jól állítottad be a baudrate értékét. Idézet: „watt: Ha sérülne a firmware, akkor az MPLAB, vagy az egyzserű égetőprogit amit adtak hozzá újra tudja programozni(Update OS).” Többször előfordult már, hogy megsérült a bootloader rész is.
Sziasztok!
Próbálgattam ezt a sebességmérőt a motoron amit építettem de lefagy és most már komolyan felidegesített. 7805L táp IC ami-nek a bemenetén van egy 100µF os kondi amivel párhuzamosan van 100nF os kondi és egy 1000µF os puffer ami RC szűrőt alkot egy 100ohmos ellenállással az IC bemenetén. Van még itt sorba egy dióda is amolyan polaritásvédelemnek. Az IC kimenetén van 100µF-os kondi és közvetlen a PIC lábán van egy 100nF-os kondi. De ez a szemét lefagy. Amikor ráadom a gyújtást és a levegőben forgatom a kereket de a motort nem indítom be addig ninc gond így még nem fagyott le. Beindítom a motort és kb 3 perc múlva le is fagy. Van hogy összevisszaságokat ír a kijelzőre és van hogy a kijelzőn csak a felső sor látható az is fekete mármint csak teli karakterek. Ilyen hoki az a PIC vagy ilyen sz.r programot írtam vagy m,ost mit csináljak vele?
En nagyon nem ertem mi a kapcsolas... Rajzoldd inkabb le!
Idézet: „7805L táp IC ami-nek a bemenetén van egy 100ľF os kondi amivel párhuzamosan van 100nF os kondi és egy 1000ľF os puffer ami RC szűrőt alkot egy 100ohmos ellenállással az IC bemenetén.” Tapon nem jo dolog a soros ellenallas es egyaltalan a nagy impednancia! Tenyleg le kellene rajzolni mi hogy van sorban mivel es kivel. Idézet: „Ilyen hoki az a PIC vagy ilyen sz.r programot írtam vagy m,ost mit csináljak vele?” Nem karomkodni kell, hanem hideg fejjel gondolkodni. Gondoldd vegig, hogy lehet-e szoftver hiba, ha a motor jarasa nelkul minden megy. Gondoldd azt is vegig mi lehet a kulonbseg a motor jarasa es csupan a gyujtas raadasa kozott? Velemenyem szerintn egy hatalmas EMI-vel nezel szemeben, es arra a tapos megoldasra gyanakodnek, hogy ott kell elsosorban valtoztatni, emellett lehet foldelt femhazba kellene tenned (itt a fold a negativ saru...)
Bocs igazad van.
A programmal nem lesz gond mert ha lenne akkor álló motornál is fagynia kéne és úgy még egyszer sem fagyott le. Földelt fém dobozba van szerelve elejétől fogva. A kijelző helyénél van csak kivágva és egy plexi beragasztva. Az lehet a kínja hogy szikrázik a gyertya szerintem bár azt nem tudom hogy az elején miért nem zavarta. Gyertya nélkül meg nem megy a moci. Itt a táp rajza csatolva. Kezdetben az ellenállás helyén egy induktivitás volt olyan 100uH és nem volt benen az 1000µF os puffer sőt már most sincs mert kivettem, nem volt haszna csak utólag tettem rá.
Szia!
Ahogy a lap írja, töröld az object(hex) állomány utolsó előtti sorát. Az oszcillátor frekvenciájának 20MHz-nek kell lennie, mert a mérések egy része időmérésre van visszavezetve, más frekvenciával rendszeres mérési hiba jelentkezik. A 28MHz túl sok lesz a kontrollernek. Szia
Szia!
A táp kimenetre (a 78L05 kimeneti és föld lábához a lehető legközelebbre) és közvetlenül a pic táplábaira is tegyél 100nF-os kerámia kondenzátort...
A PIC lábain van közvetlenül de nem kerámia hanem fólia kondi. (MKT)
Csak kerámia jó?
Oké, köszi, már megoldottam, sajnos nyák tervezés hiba volt.
Üdv.
Mindenképpen kerámia a jó. (belső ellenállása kicsi, induktivitása szintén.)
Rendben akkor ezeket kicserélem kerámia kondikra.
Köszönöm a tippeket mindenkinek. Írok mire jutottam.
Sziasztok!
Valahol itt a fórumban le volt írva a WinPic telepítése, beállítása, és most az istennek sem találom. Ha jól emlékszem Topi tette fel. Meg tudná valaki mondani, hogy merre találom?
Sziasztok!
Én a napokban kezdtem el foglalkozni a PIC programozással. C nyelven tanulom mert van némi tapasztalatom e téren (php). Tanácsokat kérnék tőletek, hogy milyen kezdő, alap, tanító programokat írjak? Olyan ötleteket várnék tőletek amik egy nagyobb, komolyabb szoftwer részét is képezheti. Pl.: motorvezérlés, 7szeg... stb. Segítségeteket előre is köszönöm! Még valami: Tudnátok nekem egy olyan PWM programot mutatni amelyben részletesen fel van kommentezve, hogy mi is és miért csinál? Így eltudnám lesni azokat a fortélyokat amelyekre oda kell figyelni és be is kell tartani. Segítségeteket előre is köszönöm!
Mivel én is php programozással foglalkozok munkaidőben, így elmondhatom, hogy egész más világ a PIC és a PC. Nem sok az a 35 utasítás a 16F-nél, vagy 75 a 18F-nél, igazán könnyen meg lehet tanulni ezeket. A dolog úgysem ezen áll vagy bukik. Van itt a témában, aki kezdetben szintén C-t akart használni, azután rá kellett jönnie, hogy az asm háttér ismerete nélkülözhetetlen ahhoz, hogy ha az áramkör nem azt csinálja, amit szeretne, akkor rá tudjon jönni arra, hogy miért nem azt csinálja. Azóta asm-ben csinálja. Tehát kezdd asm-ben a ledvillogtatással, aztán majd haladsz előre, ahogy a konkrét feladat kívánja. Itt nemigazán lehet annyira blokkszerűen csinálni valamit, mint ahogy azt a php-ben lehet, mert itt mindig a feladathoz kell hozzáhegeszteni a komplett firmware-t. Persze lehet valamilyen szintű modulokat készíteni, de nem lehet azt mondani, hogy ezt most változtatás nélkül fel tudom használni 100 helyen. Valamit mindig hozzá kell igazítani a konkrét áramkör kívánalmaihoz...
Értem!
Nagyon szépen köszönöm a kimerítő válaszod. Akkor valószínű, hogy mellék ágon nekilátok az asm-hez is. Bár tudtommal az nehezebb mint a C. Vagy tévedek? De viszont azért könnyebb C-ben dolgozni mint asm-ben (legalább is ezt mondták nekem valamikor).
A legegyszerűbben leírva:
- az asm elemi logikai műveletekre bontja le a feladatot, és eléggé hardvertípus-orientált (aki szereti a feladatokat logikai utakat végigjárva megoldani, annak biztosan nem okoz gondot a megértése), a C pedig könnyebben olvashatóvá és átláthatóbbá teszi a dolgunkat, és úgymond, hordozhatóvá teszi/teheti a forráskódot. Persze, ez majdnem konyhanyelven van leírva, és biztos létezik könyv-szagúbb megfogalmazás is, és sokan biztos még hosszú tíz-száz-oldalakkal tudnák ezt a "mesét" továbbszőni, de alapvetően a leírtakról van szó.
Hello,
icserny által sokszor linkelt, Mississippi Állam Egyetemén levő tananyagot érdemes megnézni. A többi előadás: itt. Az előadások C nyelvre vannak specializálódva.
Mint írtam, az asm kell ahhoz, hogy ha belenézel a listing fájlba, akkor lásd, hogy mi miért történik. C-ben fejleszteni kétségtelenül gyorsabb, csökkenti a hibalehetőséget, matematikai műveleteket jelentősen leegyszerűsíti - ugyanakkor bevisz hibalehetőségeket is, ha a nem általad készített rutinokat használod (persze ha pontosan elolvasod a rutin dokumentációját, akkor nem ad plusz hibalehetőséget, csak ugye az ilyesmi nem szokás). Mivel a kontrollereknél sokszor fontos az időzítés, ezért jó tudni azt, hogy mire fordul egy C sor vagy utasítás. Pl. a c=a>b?d:e; sort régebben a C18 elég rosszul fordította. Az if (a>b) c=d; else c=e; formában leírva pedig pontosan azt a kódot generálta, amit asm-ben is írnánk kézzel. Ezért nem lehet mindent a fordítóra hagyni, van amit kézzel kell kioptimalizálni, vagy legalábbis segíteni a fordítónak, hogy azt a kódot adja, ami elfogadható - ezért kell ismerni a hátteret, és erre a legjobb, ha az elején néhány "projektet" asm-ben csinálunk.
Idézet: „Persze lehet valamilyen szintű modulokat készíteni, de nem lehet azt mondani, hogy ezt most változtatás nélkül fel tudom használni 100 helyen. Valamit mindig hozzá kell igazítani a konkrét áramkör kívánalmaihoz...” Hogy ez mennyire igaz! Én is úgy gondoltam régebben, hogy készítek rutingyűjteményeket, ami aztán mindenhová jó lesz, csak be kell pakolnom, stb. Aztán rájöttem, hogy gyakorlatilag semmi értelme, mert nem hatékony és nem is megoldható. A "rutingyűjtemények" kvázi a megírt programjaim lettek. Ha elkezdek valamit, keresek egy hasonlót és abból indulok neki. Kigyomlálom a nagyját, vagy az egészet, és csak a törzsre építem a következőt(értsd, nincs benne kód, csak a váz.) PC-n VB-ben és elvétve C-ben dolgozom, ott szinte ugyanígy megy.
A PC-n a C jelentősen hatékonyabb és nem is okoz gondot, ha nem túl optimális egy kód, mert vagy nem számít a sebesség, vagy a proci megoldja erőből.
A PIC más. Ez egy áramkör, amire időkritikus programokat írunk. Rengeteg olyan helyzet van, amikor nem mindegy hány sorból áll egy program, mi történik két megszakítás között, ill. mikor történik a megszakítás, szabad-e akkor stb. Ha megtanultad az assemlert, utána C-ben is "assemblerül" fogsz programozni! Természetesen nem a betét kódokra gondolok, hanem a logikára. Az OPEN-t én pl. alig használom, inkább megadom "kézzel" a regiszterek tartalmát, úgy biztos. Ha még is, akkor az adatlap segítségével leellenőrzöm, hogy mit állított be a fordító. Van mikor asm betéteket is használok, mert nincs mód a C-ben, hogy az történjen, amit akarok. Szóval szerintem(úgy tűnik szerintünk) az asm kikerülhetetlen, és nagyon hasznos (és érdekes) terület.
Sajnos nincs tömeges válasz lehetőség, de mindenkinek aki az asm és más tanácsokat adott nagyon szépen köszönöm! Mostmár kezdek afelé hajlani, hogy valóban assemlerben kellene kezdeni a dolgokat.
Majd megpróbálok valami magyar oktató forrást felkeresni a neten! Nagyon szépen köszönöm az építő hozzászólásaitokat!!
Sziasztok! Sajnos még kezdő vagyok a PIC-ek világában,de most elszántam magam és építeni szeretnék egy PIC-égetőt.Mellékeltem egy nyákrajzot.
És valami program is kéne ha ez megoldható mert nem tudom milyen néven és hol kell keresni.És ha elkészült a nyák és be van ültetve(üzemkész) akkor az IC foglalatba bele kell tenni az IC-t és a Szápítógéppel csatlakoztatni és a programmal elkezdeni az égetést??? Én így gondolom ha nem tévedek. Ja és a nyákrajzhoz vissaztérve Jó lesz az a nyákterv vagy másik kell? Előre is köszönöm Idézet: „Majd megpróbálok valami magyar oktató forrást felkeresni a neten!” A már kismilliószor ajánlott oldalon nézz szét!
Igen igen, ezt ismerem. Még régebben találtam rá. De jó is, hogy említed, mert majdnem el is felejtettem, hogy itt van asm és leírás is.
Szerintem nincs valami sok tanulnivaló magán nyelven(adatlapban minden benne van, de az említett oldal is megteszi).
Ha már programoztál más nyelven, akkor a logika már megvan. A lehetőségeket kell felderítened, amit a PIC nyújt, azt pedig az adatapokból lehet a legegyszerűbben megtenni. Ha megvannak a lehetőségek, akkor már csak a rendelkezésre állíó utasításokkal kell jól bánni. Bele kell vágni egyszerű dolgokba, lábak ki be kapcsolgatása(LED), regiszterek feltöltögetése, műveletek elvégzése. A két utóbbihoz még PIC se kell, mert az MPLAB szimulátora mindent megmutat. Szóval rajta!
Csak ismételni tudom magam, nagyon szépen köszönöm!
Szerintem maradok a fizikai tesztelésnél, élvezetesebb látni a munkádat a valóságban mint csak a képernyőm. Szerintem... Adatlapnál az adott családra vonatkozót nézzem vagy pedig a pic-ét? (16F871 adatlap vagy 16F8xx ?) Bár lehet, hogy ez a kérdés hülyeség volt feltenni de inkább megkérdem mint, hogy itt motoszkáljon benne. Vajon jót nézek vagy a másikat kellene?
Konkrétumok után azt az adatlapot nézd, ami az adott pic-re vonatkozik. Amikor egy családra szól az adatlap, akkor ott fel sorolva, hogy az konkrétan melyik chipekre érvényes. Ha ott van az is, amit használsz, akkor nézd azt is. Van olyan, hogy egy adatlap érvényes 2-4-8 chipre is, akkor azok között minimális az eltérés, pl. kevesebb lába van, vagy kevesebb programmemóriája. Az elején ki van emelve egy táblázatban, hogy mi az eltérés a chipek között (pl. 16F873/874/876/877-nek ugyanaz az adatlapjuk)
|
Bejelentkezés
Hirdetés |