Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Köszönöm mindenkinek a segítségét.
Most megyek olvasni, meg tanulni, hátha holnapra profi PIC programozó leszek! Na jó ez csak vicc volt. Most tényleg mentem és jelentkezem, mihelyst sikerült, vagy nem sikerült valami!
Remelem azert 20k-val felhuztad Vcc-re Amugy akkor most mar mukodik?
28k t találtam azzal húztam fel tápra a reset lábat(miközben elvileg nincs is engedélyezve), de úgy sem lett jó, utána egy kondival lehúztam földre (28k maradt ), engedélyeztem a reset lábat. De az istennek se reseteli indulásnál aztán így se ötletem nem maradt se energiám. De nemsokára nekiállok újra és akkor kiderítem mi folyik itt.
Egyszer már kérdeztem, de nem méltattál választra, megkísérlem mégegyszer: LVP bit le van tíltva?
Idézet: „Viszont valaki azt megtudná nekem mondani, hogy mi a különbség a PORTA, PORTB, PORTC és PORTD között? Rengeteg olyan programot láttam, ami a PORTD-t használja. Miért nem például a PORTA-t?” Ha meg tudod mondani mi a kulonbseg a szemelygepkocsiknal a szelvedo, a hatso ablak es a jobb ill baloldali ablak kozott akkor en is tudok erre a kerdesre valaszolni. Mert rengeteg sofort lattam amelyik kozul nehany ezen masok azon az ablakon neztek keresztul... Na de felreteve a trefat, szerintem egy kezdo oldalon kezdd el olvasgatni a PIC-ekkrol a tudnivalokat, pl itt a HE-n keresd meg a "Nullatol a robotokig" c. cikket, ill. vedd meg a Konya fele konyvet. Van emellett egy eleg jo PIC konyv ami online ingyen olvashato: Mikroelektronika Online Books Sok sikert az olvasgatashoz! Idézet: „28k t találtam azzal húztam fel tápra a reset lábat(miközben elvileg nincs is engedélyezve), de úgy sem lett jó, utána egy kondival lehúztam földre (28k maradt ), engedélyeztem a reset lábat. De az istennek se reseteli indulásnál aztán így se ötletem nem maradt se energiám. De nemsokára nekiállok újra és akkor kiderítem mi folyik itt.” 28k az jo, ha megnezed az adatlapot 40k-ig jonak kell lennie. De ezt az "Istennek se reseteli" dolgot nem ertem? Miert kellene neki resetelnie? Epp az lenne a felhuzas celja, hogy reset allapotbol kihozza. A kondenzatort pedig arra szoktak hasznalni ott, hogy a bekapcsolaskor a PIC kesleltetve insuljon el (amig a kondi toltodik addig alacsony szinten marad az MCLR vonal. De valoszinuleg kellene ehhez egy R tag is a PIC laba fele... Es hat a modernebb PIC-ekben mar ott van az idozito aramkor amit csak a konfigban engedelyezn kell, szoval az a kondi teljesen feleslegesnek tunik szamomra. En igazandibol nem is tudom most mi a problema. Van egy aramkorod ami nem indul? Vagy magaval a firmware-el van a szenvedes? Ez az a szakdolgozatos ugy, ugye? A teszt aramkor keszen van? Hol a kapcsolasa? LED villogtato mukodik mar rajta, hogy lassuk a PIC indul-e? (muti a LED villogtato programot is).
Tobbek kozott Az a lenyeg, hogy ha ki szeretned deriteni ez a dolog mokuodik-e, ahhoz vegulis ossze kell hasonlitanod a ket eszkozt. A megvalaszolando kerdesek:
1. Architekturalisan kulonboznek-e? 2. Program, RAM ill EEPROM meret -- belefer-e az adott program minden tekintetben, tehat RAM hasznalat stb 3. Lab szam / IO szam / Periferiak megvanak-e a masik eszkozben? 4. RAM terulet (General Purpose Registers) ugyanott van-e? 5. Special Function Register-ek ugyanott vannak-e? Ha minden stimmel akkor mennie kell, ha nem akkor legfeljebb csak akkor ha atirod a programot, mar ha ez lehetseges -- tehat fizikailag elfer-e ill a perireriak rendelkezesre allnak-e.
Azért annyit elárulhattál volna, hogy melyik PIC-hez vagy PIC családhoz szeretnél érteni, mert a PIC10F, PIC16F, PIC18F, dsPIC30F és a PIC32 programozása között nem elhanyagolható különbségek vannak.
A PIC18 programozásának megértéséhez pl. ezt a tananyagot tartom a legjobbnak. dsPIC30-hoz a lentebb már belinkelt Mikroelektronika honlapon található leírást ajánlom.
Hello!
Mivel kezdő vagyok ezen a téren, nem tudok mit mondani. Nem a legegyszerűbbel, de nemis a legbonyolultabbal szeretném kezdeni. Az aranyközépút érdekelne. Olyan érdekel, amivel megtudok oldani kis dolgoktól kezdve nagyobbakat is. Pl. a LED villogót, kódzáron, stb
Legjobb választás manapság talán a PIC18F-es szériával kezdezni és haladni... később jöhet extraként néhány 24-es vagy 32-es típus, én azt mondom.
Ha 18F -es széria, akkor még tudnám ajánlani a PIC Microcontroller - An Introduction to Software and Hardware Interfacing c. könyvet, 818 oldal, irdatlan mennyiségű példával, mind C ( C18 ) mind Assembly nyelven. Ennyi - a témát kimerítő - könyvvel már úgy hiszem, hogy lehet mit kezdeni.
Idézet: „Mivel kezdő vagyok ezen a téren, nem tudok mit mondani. Nem a legegyszerűbbel, de nemis a legbonyolultabbal szeretném kezdeni. Az aranyközépút érdekelne. Olyan érdekel, amivel megtudok oldani kis dolgoktól kezdve nagyobbakat is. Pl. a LED villogót, kódzáron, stb” Ez egy olyan dolog amit nem lehet (vagy ajanlott) kozeprol kezdeni. Autot vezetni sem lehet ugy, hogy "Autopalyan sem szeretnek kezdeni de a parkoloban sem, igy inkabb egy mellekuton szeretnem megtanulni hogyan kell elindulni es megallni". En tenyleg nem ertem mi van mostanaban, de valahogy senki sem szeretne az idot bele fektetni meg az energiat de eredmenyt akar most de azonnal. Aztan majd jonnek az alapveto kerdesek, hogy miert nem villog a LED mikor egy masik programban villogott ugyanaz a LED. Meg hogy annak a zold LED-nek pirosan kellene villognia es a megoldas surgos mert a keszulek eladasra lesz... Hat nem tudom, de egyre jobban kikeszit ez a dolog. Kicsit ugy erzem magam mint Clint Eastwood a Gran Turinoban mikor nezi a fiatalokat, hogy mindenki meg van orulve manapsag?
Elhiszem, hogy mit érzel manapság (végülis jogosan), és együttérzek ilyen tekintetben veled, viszont redoc kivételesen tegnap ezt írta este:
LINK
Nem műhold vezérlőt akarok elsőre összerakni, de például miért tanuljam újra a LED fogalmát, mikor már tudom?
Mivel nem gyenge programozói alapom van más területen ezért lenne sokkal könnyebb példákból tanulnom, mint sima szövegből.
Az internet dugig van példákkal. Én is a 18F-ek mellett voksolok kezdésnek(pl. 18F2321, vagy 4321, esetleg 18F2550, vagy 4550(ezek USB-sek, de azzal ráérsz, de nem árt, ha megvan a lehetőség).
Assembler nyelv tárja fel a PIC valóját, ezért abban kezd, mindegy milyen nyelven programoztál előtte, mert a logika ugyanaz, csak mások a lehetőségek, ami nem túl sok, csak összetett a lépésenkénti gondolkodás miatt. Néhány konfigurációs példát az oldalamon is találsz, alap kapcsolásokkal. A Portokkal hogy állsz, találtál érthető magyarázatot az adatlap rajzai között? Idézet: „Nem műhold vezérlőt akarok elsőre összerakni, de például miért tanuljam újra a LED fogalmát, mikor már tudom? Mivel nem gyenge programozói alapom van más területen ezért lenne sokkal könnyebb példákból tanulnom, mint sima szövegből.” A LED-et nem kell ujra megtanulnod, azonban, hogy egy mikrovezerloben mi(ke)t lehet vele csialni azt igen. Pl, hogy current source vagy current sink-es meghajtas a celravezeto-e? Hogy mi az a multiplexeles vagy hogy hogy lehet valtoztatni a fenyerot szoftverbol. Az is egy sarkalatos pont hogy egy LED villogtato programnak fontos szerepe lehet az aramkor teszteleseben vagy a konfiguracios bitek beallitasaban. Ami a programozast illeti, hidd el nem a programozas a lenyeg, hanem az architektura megertese. En anno 20 eves programozoi tapasztalattal kezdtem el foglalkozni a PIC-ekkel C es Assembly ismeretekkel, de meg igy is boven volt tanulni valom. Majdnem masfel honapig meg PIC-em sem volt, csak olvastam a konyvet es szimulatoron kiserleteztem ki a dolgokat. Na mindegy, vegulis Norberto mar kozben leirta, hogy Te sem ugy gondoltad hirtelen digitalis szurot szeretnel csinalni a photon meghajtasu raketadhoz, ugyhogy valoszinuleg nyitott kapukat dongetek es ezert elnezesedet kerem.
Semmi gond, de szerintem
egyszerűbb, ha inkább kérek tőletek egy konkrét programot és kapcsolást: Van 1db 3310 LCD 1db PIC (mondjuk 16F628A) 10db kapcsoló és rengeteg egyéb alkatrész (kondi, ellenállás, stb) Kellene egy olyan eszköz (program és kapcsolás), ami a lenyomott billentyűt megjeleníti a kijelzőn. A kapcsolók fel vannak számozva 0-9-ig, mondjuk, mint a telefonon. A progi lényege még az is lenne, hogy eltárolja az adott számot, tehát, ha lenyomjuk a 9-es gombot, akkor az megjelenik a kijelzőn és el is tárolódik a memóriába. Ha leveszed a picről a tápot és mondjuk 2 nap múlva kapcsolod rá újra, akkor is azt a számot mutassa, ami legutóbb volt leütve, jelen esetben a 9-es. Ez semmire sem, jó, de már lehetne belőle tanulni, hogy milyen úton módon mi hogy működik!
Na látod, pont ez az, amiből nem tanulnál meg semmit, meg egyébként is harapunk érte, ha valaki kész programot kér. Azt meg különösen nem szeretjük, ha valaki elmagyarázza nekünk, hogy szerinte hogyan kell nekiállni tanulni. Mi már végigmentünk ezen, és már láttunk néhány emberkét itt a témában, aki így ajtóstól akart a házba rontani, aztán el is tűnt rövidesen, mert rájött, hogy ez nem ilyen egyszerű. Ami az induláshoz szükséges, azt már megkaptad: útmutatást. Mást ne kérj, mert úgysem fogsz kapni.
Idézet: „aztán el is tűnt rövidesen, mert rájött, hogy ez nem ilyen egyszerű” Szerintem meg azért tünt el, mert nem voltatok hajlandóak segíteni neki. na mindegy félre téve a sértegetéseket. megoldható vagy nem amit az előbb leírtam? És légyszi ne egy szavas választ legyen, hogy igen vagy nem. Idézet: „Szerintem meg azért tünt el, mert nem voltatok hajlandóak segíteni neki.” Érdekes, amikor én kezdtem PIC-ezni 4-5 éve, akkor egyszál nyomorult kérdést nem tettem fel sehol, hogy hogyan kellene kezdeni, hanem saját eszemtől elolvastam mindent, amit csak találtam. Ezután pedig nem volt szükség semmilyen kérdésre... Idézet: „megoldható vagy nem amit az előbb leírtam?” Persze, megoldható. Csak nem fogja helyetted senki megcsinálni.
Tapasztalatból mondom, hogy ez nagyon rossz megoldás, hőmérőt akartam így csinálni nem olyan régen, volt egy kész program, a szenzorom is ugyanaz volt, mint a példaprogramban ( nem véletlen, mert így kerestem rá microchip fórumon ), elkezdtem másolgatni a saját ízlésemnek megfelelően, aztán a végén ott tartottam, hogy azt se tudtam mi fán terem az I2C; mik ezek a kHz értékek, mi van, ha más szenzorral próbálom ki a programot; mi lesz akkor, ha tizedre pontos értékeket akarok kijelezni stb stb.
Biztosan állíthatom, hogy, amit te most kérsz, az a legrosszabb megoldás lenne, ugyanis még több kérdés vetődne fel magadban, legyen az LCD vagy EEPROM írás. Lassan a segítséget, mint fogalmat is tisztázni kéne valahol, mert az nem segítség, ha valakivel megiratsz egy programot; vagy akkor kezdje úgy az illető, hogy nem érdekel a PIC, csak itt van xy periféria, írjatok rá nekem xy programot.
Szerintem végy egy picet, tedd bele egy próbapanelbe. Rakj mellé egy LED -et. Első projected legyen az hogy villogtasd a ledet. Azután tegyél még egy kapcsolót is mellé, azzal kapcsolgasd ki-be. És így tovább, szépen lépésről lépésre haladj. Ne mindjárt LCD vel kezdj. Szerintem kezdésnek jó a 16F széria is, egyszerűbb architektura a 18F nél kicsivel, elsőre talán könnyebb átlátni. Ha veszel pl egy 16F887 -et, akkor tudok segíteni alap pici programokban, ugyanis nekem is épp az van beszúrva a próbapanelbe.
Idézet: „egyszerűbb, ha inkább kérek tőletek egy konkrét programot és kapcsolást: Van 1db 3310 LCD 1db PIC (mondjuk 16F628A) 10db kapcsoló és rengeteg egyéb alkatrész (kondi, ellenállás, stb)” Figyi, epp ezt akarjuk magyarazni, hogy ez nem igy mukodik, hogy kikukazok nehany alkatreszt es epitek belole egy varat. Abbol csak lekvar lesz mar elnezest. Egy kapcsolast meg szoktak tervezni es hacsak nincs egy jo raktar keszleted alkatreszekbol akkor szinte biztos, hogy be is kell szerezned ujakat mert nem lesz olyan ertek stb. Az egesz ugy mukodik, hogy elhatarozod meg akarod tanulni a PIC-ezest. Fazisokra kell bontani a problemat. 1. Lepes: A PIC uzembe helyezese, egy LED villogjon szabalyos idozitessel 2. Lepes, Tegyel ra 1 db kapcsolot. Eloszor csak annyit csinalj vele, hogy mig nyomva van a LED is eg, mikor elengeded akkor a LED elalszik. 3. Push button uzemmod: A gomb egyszeri megnyomoasara - elengedesere a LED vilagit, majd ismetelt megnyomas-elengedesre elalszik... (ez legtobbszor mar eleg nagy fejtorest szokott okozni a kezdoknek) 4. Tobb gomb figyelese, pl egyik megnyomasakor bekapcsol, masiknak ki-be, harmadiknal villogni kezd... 5. El kell gondolkodni azon, hogy hogyan lehetne olyan sok gombot rakotni a PIC-edre anelkul, hogy temerdek szamu labat elhasznalnal... Magyaran egy billentyu hozza kapcsolasa a PIC-hez... 6. LCD, de nem javasolnam, hogy kapasbol egy grafikus kijelzovel kezdj... Vegyel egy de-facto szabvanyos HD44780-ast es kezdesnek tulajdonkepp mindegy, hogy 1x8-as, 2x16-os vagy 4x20-as. Tanuldd meg 4 es 8 bites modban meghajtani... 7. Ennek az LCD-nek a kezeleset hozdd ossze a billentyuddel es valositsd meg amit eredetileg kituztel: Megnyomod a szamot es kijelzed az LCD-re... 8. Ha nagyon ragaszkodsz ahhoz a 3310-es kijelzohoz, akkor _ezek_utan_ nezd meg hogyan kell azokat meghajtani, szamitsd ki mekkora tarhely kellene a karakter generatorodnak stb. es valassz ki egy olyan PIC-et amibe bele fersz -- nem pedig egy random modra kivalasztottat. Ennel tobb segitseget nem tudom hogy adhatnank. Van egy csomo linked ahol olvasgathatsz, van egy kvazi terv ami alapjan haladhatsz, es kb 1 honap alatt el is erheted a celod es kozben erteni is fogod valoszinuleg mi miert van. Kozben pedig ha elakadsz kerdezel, leirod mivel probalkoztal es mivel akadtal el es itt a sracok tudnak segiteni.
Ez egy normális korrekt válasz volt!
Sajnos ragaszkodoma 3310-es kijelzőhöz, mert van belőle 30db és nem akarom őket kidobni. Idézet: „Sajnos ragaszkodoma 3310-es kijelzőhöz, mert van belőle 30db és nem akarom őket kidobni.” Nem kell kidobni, csak ne ezzel kezd a PIC-ezest
Magam reszerol nem olvastam at azt az oldalt, de mar tobbszor volt emlitve itt a forumon es ugy tudom egy jo alapot ad kezdeshez.
Honnan tudnám letölteni a könyvet? Googleval találtam néhány helyet, de mind jelszót kér.
Vagy ha el tudod küldeni mailben, azt megköszönném. |
Bejelentkezés
Hirdetés |