Fórum témák
» Több friss téma |
Igen, "Build all" megvolt, de most ismét lepróbáltam sajnos semmi változás.
Picit tovább gondoltam és PICKIT2-vel kiolvastattam a beprogramozott hibás kódot, ez segíthet? Eltér a hex állománytól, amit a fordító csinál.
Üdv!
Jelenleg a Kandón tanulok mikrokontroller programozást. (a 8051-es család) AZ elméleti részen elvileg túl vagyunk, idén pedig már gyakorlatban csináljuk a dolgot. ELsősorban pár gyakorlati kérdésem lenne: EZek csak a bennem lévő felvetések, hogy kicsit jobban el tudjam képzelni, hogy működnek a dolgok. Például Hogyan tudom beolvasni egy nyomógomb, LED vagy akármi címét? Egy LED villogtatásakor a fizikai működést úgy kell elképzelni, hogy pl. az 1-es port valamelyik lábára rákötöm a + lábat, a másikat pedig a GND-re ami közös a PIC GND-jével, és a programban megírt szöveg szerint adja neki a feszültséget? Másodsoprban pedig összegyűjöttem néhány számomra érthetetlen dolgot a programozással kapcsolatban. Ezek inkább feladatok voltak, hogy pl. "a 20H és 40H közötti memória értéket töltse fel a 13D értékkel!" Ilyen és ehhez hasonló feladatokban tudnátok segíteni?!?! Vagyis ha megírok egy-két programot, akkor le tudnátok ellenőrizni, hogy valóban azt csinálja-e amit eredetileg akartam? Ha igen, akkor összegyűjtöm ezeket és beíroma fórumba, hátha más is hasznát veszi. Mindenesetre nagyon hálás lennék, ha valaki ismerné a 8051-es utasításkészletét és segítene. Előre is köszi a választ.
Beletúrtam neked a .hex állományokba, amiket felküldtél.
Kimegy: 0x0030.0000: 00 FF 1F 1E | 00 88 CD 00 | 03 C0 03 E0 | 03 40 .. .. Visszajön: 0x0030.0000: 00 27 1F 1E | 00 88 85 00 | 03 C0 03 E0 | 03 40 .. .. Kettő eltérő byte van. Az egyik 0x00300001 címen 0xff megy ki, 0x27 jön vissza. A másik 0x00300006 címen 0xcd megy ki, 0x85 jön vissza. Hogy mik vannak ezeken a címeken, azt a pic adatlapjában találod a config bitek résznél. Ha úgyis asm-ben gyakorolsz, akkor ezt most rád hagyom.
Szia,
A PIC és az AVR(8051) külön téma. A PIC-nél fixek a címek,de már nem mint regiszter szám, hanem név mondjuk "PORTC" hivatkozunk rá. Tehát ezt a leírásokból fixen meg tudod nézni. A LED meghajtás meg egyszerű: 1 PIC lábat általában 20-25mA-rel lehet terhelni (szintén adatlap) és a LED-et a táp negatív pontja és mondjuk a PORTC,0 -dik bitet képviselő lába közé kötheted. Idézet: Ha ez azt jelenti, hogy a program működteti akkor igen. „megírt szöveg szerint adja neki a feszültséget?”
Hello,
Köszi a gyors választ. Akkor a többi kérdésemmel majd az AVR topic-ot boldogítom. Én abban a hitben éltem, hogy a 8051 az a PIC kategóriába tartozik. Még jó, hogy időben megtudtam ezt a tényt.
A Kandó az mostanra nem lett már BMF? Vagy már újra Kandó ?
A 8051 egy korai intel szöcske, az assembly-je olyan, amilyen. Ha meg kell tanulnod, akkor tanuld meg. Nem olyan bonyolult. Egy nyomógombnak, vagy led-nek nincsen címe. Úgy megy a dolog, hogy a mikrokontroller megcímez valamilyen output tartományt, és kiírja rá az adatot. Egy külső címdekódoló egység észleli, hogy a most következő adat neki szól, és betölti latch regiszterbe azt a 8 bites adatot, amit a 8051-es kiírt arra a címre. Led-et meghajtani, vagy nyomógomb állapotát beolvasni már a latch regiszteren / bufferen keresztül tudsz. Ami bitet kiírtál, az a latch regiszter (pld SN74LS373) egyik bitjén keresztül az arra a bitre rákötött led-et fogja meghajtani. Ami byte-ot onnét beolvasol, az valószínűleg egy buffert (pld SN74LS244) olvas, aminek az egyik bemeneti bitje felhúzó ellenállásra, és nyomógombra van kötve, ahol a nyomógomb a föld felé húzná le azt a bitet (vagy fordítva, gnd felé van egy ellenállás, és + táp felé a nyomógomb). A led villogtatás egy olyasmi, hogy ciklusban kiírsz magas jelet, valamennyi idő múlva alacsony jelet, azután újra magas jelet. A kettő között timer-eket kell használnod várakozásra, vagy kiszámolt ideig pörögnöd ciklus számlálóval egy utasítás ciklusban, mert a 8051-es sokkal gyorsabb, mint az emberi szem. Olyan gyorsan villogna a led, hogy nem lennél képes érzékelni a villogás eltérő fázisait. Amit te az 1-es portra kiírtál programból, az valahol egy latch regiszteren fog megjelenni, és a led-nek azt a lábát logikai alacsony vagy magas értékre húzza. Kicsit szakembertelenebbül a led akkor fog világítani, ha a + lábát (anód) felhúzod logikai magasra, a - lábat (katód) pedig lekötnöd GND-re (vagy a - lábat lehúzni logikai alacsonyra, a + lábat pedig felkötni +tápra). Ha kicsit jobban megnézed, lesz ott egy áram korlátozó ellenállás is. A 8051 az csak mikrokontroller, az nem pic. A pic egy kicsit összetettebb dolog. Ne keverd össze a kettőt. Míg 8051-en portot címzel, hogy elérj egy külső perifériát, addig pic-en egy memory mapped portot írsz, hogy elérd a pic-en belüli perifériát. A programot nagyon egyszerűen le tudod ellenőrizni te is. Feltöltöd, és vagy működik, vagy nem xd Amikor én voltam Kandós, nem volt olyan vacak az a labor jegyzet, hogy érthetetlen lett volna. Minimális logikai érzékkel el kell tudnod vele boldogulni.
Lenne egy kérdésem nekem is.
Két pic közül az egyik 2.5V-on üzemel (muszáj neki), a másik 3.3V-on (muszáj neki). A kettő között adatforgalmat szeretnék megvalósítani. Vannak eszközök ilyen feladatra kitalálva ? Vagy csak a hagyományos módszer (pld két darab kapcsoló tranzisztor egymás után kétszer invertálni a jelet) ?
Optocsatoló?
Én 24V és 5V között használtam, ott működött.
Nincs itt valami olyan huncutság, hogy Kzteam kolléga rosszul állítja be az MPLAB-ban a config bitek forrását (Configure/Configuration bits/Configuration Bits set in code pipája "hun kiugrik, hun be"), s azután az MPLAB felülbírálja a beállításokat?
Szia!
A jó.hex -et beimportálva egy 18F14K22 kontrollerhez beállított MPLAB programba az alábbi hibajelzést kapjuk: ld. a képen. A két program csak a konfigurációs bitek értékben különbözik. Vizsgáld meg a konfigurációs bitek megadását!
Nézz szét, hátha a 3,3V-os PIC 5V toleráns TTL bemenetekkel rendelkezik, akkor az simán fogadja a 2,5V-os jelet is magasnak. Illetve ugyanez a másik irányba is működhet, ha a 2,5V-ról járó PIC bemenete 5V toleráns (itt még a TTL kompatibilitás sem szükséges).
De léteznek ilyen célra cél IC-k is, pl. Texas Instrumentsnél próbálj szétnézni.
Kollégák,
Mindenkinek köszönöm a segítséget, működik ez a Config bites dolog. Úgy néz ki nem volt órajel.. FOSC = IRC és már világít is Ehhez annyit fűznék, hogy az angol mintapéldát próbáltam megszülni, kicsit hiányos a kezdő tudásomhoz az a leírás. Még szerencse, hogy akad egypár segítőkész Picman Üdv Mindenkinek
Nem nem. A Kandó továbbra is Kandó, mint kar. Egyébként nem BMF, hanem már Óbudai Egyetem, csak nem igazán van köztudatban a neve. Az egész sulinak egyébként a Kandó meg a Neumann kar ad életet. ( bár ez csak az én véleményen és tapasztalatom ) A hallgatók pedig a tanároktól eltanulván is csak Kandó-nak emlegetik.
Egyébként jobbat mondok: jövőre már lehet, hogy BME lesz belőle. De ez már a jövő zenéje... Egyébként a megírt program ellenőrzését nem gyakorlatban értem. Semmi gyakorlati dolgot nem vettünk eddig. Feltölteni is gőzöm nincs hogy lehet, egyelőre nem is azon agyalok. Sőt, gőzöm nincs arról sem , hogy milyen fejlesztői környezetben dolgozunk. Csak a 8051-es felépítését, utasítás készéletét, és az azokhoz kapcsolódó legfontosabb tudnivalókat vettük. Továbbá csak "logikai feladatok vannak, mely szerint például másold bele ebbe a címbe azt címet, majd abba a címbe ezt az értéket és blablabla... majd szorozd össze őket, stb. Csak írogatjuk az utasításokat, meg értékeket, de a gyakorlatról még gőzünk nincs. Én hibám is, hogy nem értem, mert figyelhettem volna jobban is, és akkor nem a 3-mas szintjén lennék, de igyekszem pótolni a hiányosságokat, ezért is kutattam fel ezt a topicot. Mindenesetre köszi a választ.
A megértés egy olyan dolog, hogy ha tudod mire használni, ilyen probléma fel sem vetődik. Ha egyáltalán előjön az, hogy "nem érted", akkor neked az a dolog egyszerűen csak semmire sem kell, és az nem probléma, csak puszta tény.
Pld egy barkács amatőrnek, aki időzített / taps lámpa kapcsolókkal, meg tojásfőző órákkal és hasonló gügyüte dolgokkal szórakozik, ilyen problémája sosem lenne. Amit most tenni tudsz, hogy átevickéled valahogy azt a blokkot a tananyagban. Amikor én voltam kandós, csak annyi szimulátor volt a laborban, hogy hármasával kellett odaülni mindegyikhez. A gyakorlat végén vagy kész volt a feladat, vagy nem, és mind a 3-an ugyan azt a jegyet kapták. 3 ember teljesítményét csak együtt osztályozták. Utólagos számonkérés meg semmi sem volt. Ha legalább jó ember ismerő vagy, válassz magadnak ügyesen társat, és megbukni tuti nem fogsz.
Érdekes elgondolás... de biztos van benne valami. Egyébként szerintem lesz mire használni, hiszen annyi dolog kavarog a fejemben amiről el tudom képzelni, hogymikrokontrollerrel meg lehet csinálni.
A Kandós "ússzuk meg a dolgot" módszert jómagam is ismerem. Bár nem az én világom. Pl. a programozás I-en mikor csak a C nyelvet vettük is, abszolút gőzöm nem a dolgokról, és végülis feltornáztam magam a csoport legjobbjává. Másrészről már csak az ösztöndíj miatt sem akarok elsunnyogni semmi alól. - bár van ami teljesen hidegen hagy, de második félévben is jól megfizették a 3,8-as kreditindex-et is. Már csak azért is érdemes tanulni. Persze nem árt be biztosítanom magam digit-en, csak szerintem már mindenki külön fog laborozni. Pont tavaly újították fel a teljes digitech labort a Zalotay-féle újítás óta. (De remélem legalább 2 emberekre el leszünk osztva)
Google pajtás kidobott egy ilyet:
http://www.pjrc.com/tech/8051/board4/index.html Vagy megveheted, és eljátszadozhatsz vele, vagy sakkozhatsz a kiskapukra, ezt szerintem el fogod tudni dönteni. Idézet: „de második félévben is jól megfizették a 3,8-as kreditindex-et” Nem akarok nagyon offolni és nektek sem ajánlom, de ehhez had tegyek hozzá egy szemléletet, ha úgy fogalmaznánk a fentiek helyett, hogy nem megfizették, hanem én és mindenki aki adózik, azaz az "állam", megfizettük. Így még szebb, ha így gondolkodunk és nekünk sem az alakul ki, hogy elherdálod a közös forrásból származó támogatást! További jó tanulást, gyarapodást!
Üdv!
Nem szerettném reklámozni az alábbi oldalt de Bővebben: Link ezzel az égetővel milyen pic-eket lehet programozni??
De akkor mit csináljak ami müködik is és sok félét lehet programozni ?:O
Ja csak hogy égetem meg bele a pic-et?
A Watt féle lpt portos égetővel, amit egy próbanyákon (dugdosós) összedobsz. Én is így csináltam annó.
Kereshetsz a környéken valakit aki beégeti.
Sziasztok! Készítettem egy viszonylag összetett nyáktervet, amit végül legyártattam, hogy jó minőségű legyen, 10k fölötti összeget fizettem érte...
Viszont elkövettem egy nagyon amatőr hibát, rossz PIC került a tervbe. Nekem 64 lábú PIC18F6722-I/PT vezérlőm van, viszont a tokozáshoz nem értek egyáltalán, így csak arra figyeltem, hogy 64 lábú PIC kerüljön fel (SprintLayout a progi, amivel készült). Ami a terven van azonban annak a mérete (maga a vezérlő, lábak nélkül) 12*12mm, ez a PIC meg csak 10*10mm (tehát jóval kisebb). Így a sok pénzért elkészített NYÁK-ot használni sem tudom. Erre keresnék valami megoldást, esetleg létezik e valami ehhez a PIC-hez hasonló (esetleg ugyanez), de más, nekem megfelelő méretű tokozással. Bármilyen egyéb megoldás érdekel, ha valahogy lehetne használni ezt a nyákot. Bármilyen megoldás érdekel, jó lenne, ha nem kellene kukába dobnom ezt a nyákot. Köszönöm előre is. Atis
Ezt kifejtenéd kicsit bővebben? Kell egy új NYÁK gondolom, amin rajta lesz a PIC, de ezt hogy fogom összekapcsolni a már elkészült NYÁK-kal? Nem igazán csináltam még ilyet. Ha nem valami extra mini chipről lenne szó, akkor vezetékekkel átforrasztgatnám, de ezen ezt kb. lehetetlen megcsinálni...
Csatold a nyáktervet és megpróbálom lerajzolni .
Van esély rá, hogy ezt végleg elszúrtad! Legközelebb a kinyomtatott tervre tegyél rá minden alkatrészt, mert nem csak a PIC tokja okozhat bosszúságot... 12 és 10mm közé én szerintem még adaptert sem lehet nagyon készíteni, de majd kiderül, ha felteszed a tervet, hogy férne el esetleg.
Haaaat... Ahogy nezem az adatlapot a 12x12mm-es TQFP tok az 80 labu es a 18F8722-hoz van, nem pedig a 18F6722-hoz... Ganyolassal talan van eselyed, hogy csinalsz hozza egy tokot, de lehet jobban jarsz ha vagy uj panelt gyartatsz, vagy pedig 8722-ot hasznalsz (ugyanaz a csalad, ugyhogy valoszinuleg a fw-t konnyu atirni).
UI: Termeszetesen ellenorizd, hogy valoban 80 labu es 8722-nek megfelelo bekotes kerult a panelre! |
Bejelentkezés
Hirdetés |