Fórum témák
» Több friss téma |
Köszönöm a segítséget.
C18 amivel küzdök ő meg velem, PIC18fxxxx lenne az áldozatom. Rájöttem hogy sürgősen be kell gyüjtenem egy demoboardot is. eddig egy USB-s ICD2 klónt használtam meglévő progik beégetéséhez. Most már viszont eljött az idő hogy bele kellene nyúlnom meglévő progiba illetve sajátot is kellene írnom.Hittem hogy C-vel könnyebb megvannak a könyvek, leírások, de lehet hogy az ASM könyebb lenne az alapok elsajátítása? A program első része kiolvasná a jumperok állását Bináris számrendszerben és a végeredményt majd továbbküldi
A PIC-et jobban meg lehet érteni ASM-en keresztül(és itt ez a lényeg, nem a nyelv!). Nézz fel az oldalamra, van néhány egyszerű példa a 18F-ekhez ASM-ban.
Hali
A linken talasz demoboard doksit is.
Hi!
Az lenne a kérdésem, hogy PIC-kel lehet -e fénykövető robotot készíteni, olyat mint ez: Bővebben: Link De nem fotoellenállással, hanem ilyen fotodiódával: Bővebben: Link? Csak mert van két ilyenem, régebben vettem, napelemes robothoz akartam felhasználni, de aztán nem lett belőle semmi.
Hali
En csinaltam 2 motoros vonal koveto robotot, de az 3 szenzorral volt. De vegulis 2 szenzorral is lehet. Merni kell a szenzorok feszultseget AD atalakitoval, eldonteni melyik a nagyobb, es ez alapjan vezerelni a motorok sebesseget, es forgasiranyat.
És a fotodiódát hogyan kell bekötni?
A katódot a bemenetre, az anódot a tápra/Vdd-re? Első nekifutásra lehet hogy inkább csak ledeket rakok rá, motort nem. És a ledek jeleznék, hogy melyik fesz a nagyobb. Ha a dolog beválik, jöhet a robot.
Hali
Itt talasz egy par kapcsolast fotodioda jelek feldolgozasara.
Hali
A mellékletben küldöm amire jutottam, Az mInitAllLEDs-től már bonyolódik.
A konfigurációs bitekre ezeket a beállításokat javaslom. Tessék utánanézni a bitek jelentésének, mert az általad írt kommentek sok félreértésről tanúskodnak, s hiba volt egynél több FOSC sor megadása!
A "főprogrammal" az a bibi, hogy a PICCOLO projekt ezt a vezérlőt nem támogatja, tehát a makrók helyett azok kifejtését kell beírnod. Az stdio.h belinkelése itt nem kell. Üdvös lesz viszont a delays.h becsatolása, s a C18 dokumentációkban kell utánanézni a delay1kTCYx() és hasonló függvények használatának. (Az I/O portok c. fejezet 1. listájából is szabad lesni, hogy hogyan lesz az órajelciklusokból milliszekundum - bukta, hogy nálad másodpercenként 12 helyett 16 millió utasításciklus (TCY) van, tehát át kell számolni az időzítést!).
Köszönöm a gyors választ , sajnos legkorábban csak kedden tudok nekiveselkedni, utána jelentkezem
melyik "C" compilert érdemes feltenni az MPLAB mellé, a 16f88x családhoz?
Hi-Tech-et, mivel az a Microchip saját fordítója.
Hali. Szeretnék egy olyan programot készíteni ami a ledeket sorban villantaná fel ahogyan tekerem fel a potit. Az analóg digitális átalakító használatát már begyakoroltam és csatolom az eddig megírt programom. Csak példaszerű segítséget és tanácsokat várok hogy hogyan tudnám ezeket megoldani.
A segítségeteket előre is köszönöm.
Ha AD konverzió eredménye kisebb mint 10, akkor LED1 világít. Ha nem kisebb mint 10, de kisebb mint 20, akkor LED2 világít. Ha nem kisebb mint 20, de kisebb mint 30, akkor LED3 világít, stb. LED1 világít, LED1+LED2 világít, LED1+LED2+LED3, stb. Ezt kb. így kell lekódolni is, egymás után összehasonlítva a mérés eredményét a megfelelő értékekkel (aztán lehet optimalizálni a futást, ha kritikus a sebesség, de egyelőre jó ez is).
És ezt az összehasonlítást hogyan lehet megoldani assembly parancsokkal? Azt tudom hogy vannak az assemblyben különböző direktívák pl feltételes elágazás de ezeket még nem használtam bár mindig jó valami újat tanulni és készen is állok rá csak még nincs meg a tapasztalat assembly terén .
Két szám összehasonlítását lehet kivonással(SUBWF,W), vagy XORWF parancsal elvégezni. A művelet után a Z és C bitek jelzik, hogy a két szám egyforma, kisebb, nagyobb-e. A XORWF,W csak azt tudja, hogy egyforma-e vagy sem. Ellenőrzés BTFSS STATUS,Z ill. C Kivonásnál alulcsordulás esetén a C 0! Adatlapot olvasgasd!
Jójó. Ez szerintem megteszi az induláshoz. Ha valami esetleg nem világos akkor majd írok. Köszi.
Hali
A konyvtaramban talasz konyveket es mintapeldakat, magyarul es kulfoldi nyeleven. APiclist forumon pedig sokfele matematikai, konverzios, es egyeb trukkoket. Erdemes vegignezni, letolteni a peldakat, es MPLAB-ban szimulalani es ertelmezni.
Óóóó. Köszönöm szépen a linkeket. Sokat olvasok ezekről a dolgokról csak mivel a suliban elég hülyén vesszük ezért én inkább itthon nekiálltam egyedül tanulni. A suliban elkezdtük a programozást egy LED villogtató programmal utána nyomógombkezelés és itt jöttek a hülyeségek. Elkezdtük a timer0-át. Képzelhetitek hogy a 9 emberből hányan értették. Hát én valamennyire meg egy ember rajtam kívül valamit megértett belőle. Szerintem ez egy kicsit hülye rendszer.
Nálunk a villamosmérnöki egyetemen hasonlóan alakultak az arányok. És az a szörnyű, hogy be lehet úgy fejezni a villamosmérnökit, hogy az embernek nem kel pákát fognia a kezébe, nem kell egy 7805-öt bekötni, stb...
Szerintem ez minden teruleten igy van. A vegzo kozgazdaszok jo resze eleteben nem konyvelt meg es nem jatszott a tozsden, a szoftver fejlesztok tobbsege nem kodolt, legfeljebb amit a zarthelyin feladtak (ami beadando azt vagy penzert megcsinaltatja vagy megoldatja velunk a forumokon...), az epiteszek tobbsege meg egyszer sem kevert meg betont eleteben sot nem rakott fel csempeket a falra. Az orvosoknal csinaljak jol: Egyetem utan meg kell nehany ev gyakorlat mire megkapja az engedelyt, hogy keshez nyuljanak... igy kellene ez mindenutt...
Sajnos ez van. Aki meg akarja tanulni az csak saját magára számíthat. Javasoltam a tanáromnak, hogy ne menjünk bele a timer kezeléébe de hát hallgat is az rám. Erre volt egy nagy válasza, hogy a tanterv szerint kell mennie. Namost tudjátok kik állítják össze a tantervet. Hát azok akik bőrszékben ülve igazgatják a dolgokat és azt sem tudják hogy mi az a PIC és mi az a programozás. Na ez itt a legnagyobb baj.
Sziasztok!
A segítségeteket szeretném kérni. Írtam egy kódot C-ben (Hi-Tech a fordító ) egy 16F628A-s picre és a felprogramozás során elhalálozott az uC. Mivel utánépített PicKit 2-van, így a PicKit 2 külön programját használtam. A programmemóriát szépen teleírta a progival, de a programozás végén kiírt valami ilyesmit, ha jól emlékszem, hogy "Verification of Configuration Word is failed". Sajnos én balga nem fényképeztem le a hibaüzenetet...Azóta fel sem ismeri a PicKit 2 progija a pic-et. Megpróbáltam egy másik 628a-sal és azt is sikerrel tönkretettem Sajnos nekem ötletem sincs, hogy mi lehet a baja. Gondoltam, hátha valahogy elírta az LVP bitet és ezért nem tudom felismertetni, de az MpLab-ban visszanézve 0-ban van. Más ötletem nem lévén, kérlek titeket adjatok valami tippet, hogy mit ronthattam el. Csatoltam a kérdéses projektet. Valószínüleg vannak benne hibák, mert nem vagyok a C mestere, meg van még egy-két dolog, amit módosítanék még rajta amúgy is. Előre is köszönöm a segítségeteket!
Melyik PK2 klónod van? Mértél feszültségeket a Vpp, Vdd vonalán?
10k-s ellenállás van a PIC Vpp, és Vdd lába között a panelon, amin programoztad a PIC-et? Próbáltad törölni és BlankCheck-et nyomni? Vpp first módban próbáltad törölni?
Szia!
A következőket programoztad be: - belső órajel megy a kontroller, MCLR letiltva, - a program és az adat memória kiolvasás védett, - a program a belső ram törlése után a RB7 és RB6 lábakat kimenetnek állítja be. A programozás közbeni ellenőrzés még sikerül, mert ekkor még nem programozza be a PICKit2 a konfigurációs biteket. Miután a konfigurációs biteket is beállította, a további kiolvasásokat már tiltja a kódvédelem. A tápfeszültség bekapcsolása után a program azonnal elindul és elég hamar kimenetnek állítja be a PGC és PGD lábakat. A fentiek miatt nem lehet a programját kiolvasni és nem tud a programozó hozzákapcsolódni. A PICKit2 saját kezelő programjában van egy lehetőség (MpLab miért nem használja ???) az ilyen kontrollerek programozását is. A használatához az kell, hogy a kontroller tápját a PICKit2 adja: A programot töltsd le, telepítsd. Csatlakoztasd a PICKit2 -t a géphez, de ne legyen a 16F628(A) a PICKit2 -hoz csatlakoztatva. Indítsd el a kezelő programot. Ezek után csatlakoztasd a 16F628(A)-t. Állítsd be a Tools / Use Vpp first program entry módot. Ezután ismertesd fel a kontrollert a Devide Family / Midrange / Standard menüponttal. A kontrollert csak az Erase parancs segítségével tudod megmenteni. A törlés után a programból lépj ki. Indítsd újra a kezelő programot, olvasd ki a kontrollert. Ime: egy törölt, újra használható kontroller. A C programban tiltsd le a program és az adat memória kiolvasásvédelmét. Ha lehet, a MCLR lábat hagyd meg az eredeti funkcióra - ekkor az MpLab is fogja programozni. Ha a MCLR lábai mégis bemenetnek szeretnéd felhasználni, akkor a program elejére tegyél be néhány 10 ms várakozást az RB7 és RB6 kimenetté kapcsolása elé.
A Use Vpp first mód használatával megoldódott a problémám, sikerült a pic-et újra olvasnom/írnom. Köszönöm mindkettőtöknek a segítséget! Eddig nem is ismertem ezt a programozási módot, de hála a leírásodnak, meg utána olvastam egy kicsit, már értem mire is jó ez.
Sziasztok.
Egy progin dolgozom és ahoz kérnék egy kis segítséget. Egy portba bemenő jelet kellene figyelni, abból is csak a H szintet, aminek a szélessége folyton változik. Nekem csak egy bizonyos szélességü jelnél kellene egy másik, kimenő portot H-ba billenteni. Namost egy darabig eljutottam csak nem vagyok biztos a dolgomban. Ha valaki átfutná nagyon megköszönném.
A logika még lehet jó is, de arra nem gondoltál, hogy egy bájtba 255-nél nagyobb szám nem fér.
Egyébként az ilyen feladatot CCP modul capture módjával szokták megoldani, esetleg egy számlálóval, amit a jel elején és végén kiolvasnak, kivonnak, ellenőriznek, kész. Ehhez az is kell, hogy a számláló ne számoljon túl gyorsan, mert túlcsordulhat. Ha nagy felbontás kell, akkor gyorsan kell számlálni még is, ekkor figyelni kell a számláló túlcsordulásait(pl. a számláló megszakÍtásában.), számolni azt is, és szorozni, összeadni a végső résszel. Nem kimondottan kezdő feladat, de egy kis logikával menni fog. |
Bejelentkezés
Hirdetés |