Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Idézet: „És itt mit fogsz megtanulni egy hét alatt?” Milyen egy hétre gondolsz ? Én például elég sokat tanultam.
Ertem, akkor elneztem, igy mar annyira nem is rossz a dolog.
Amugy ha ismered oket, meg sughatnad nekik, hogy az nem jo taktika, ha nem tuntetik fel a tanarokat. Akkor is ha nem tudjak memondani eppen ki er ra, oda kellene irni a nevuket es egy rovid par mondatos bekezdest az eletrajzukbol, hogy milyen tapasztalattal rendelkeznek PIC ill. oktatas teren, esetleg milyen publikaciokat csinaltak ez ugyben stb... Nem nekem kell, csak igy szokas es ez nekik lenne jo hisz latnak a tanfolyamra jelentkezok mennyire komoly ott a szakmai garda... Masik, hogy ha ez a gyakorlasi lehetoseg ott van, azt feltuntethetnek, hogy X ido szabad labor gyakorlat. Ez is sokat emelne az egesz erteken.
Üdv!
Köszi, hogy írtatok! Alapvető programozási hibák előfordulhatnak tekintve, hogy a "tudásomat" a netről szedegettem össze. Azok a vektorok amikről írtál pld nem tudom, hogy mik, de gyanítom, hogy azok amiket a mplabban a kódok elején az ilyen kettőskeresztes define-s részekbe írnak. Ami ezt illeti szerintem az oshon féle szimulátor megoldja magától mert be kell állítani a pic típusát órajelét stb. Amúgy meg nem vagyok teljesen tudatlan csak az előbbi okból eredően előfirdulhat hogy hiányoznak bizonyos alap tudnivalók... De ettől függetlenül írtam már 1000 soros kivezérlésmérős kódot és az működik (egyenlőre szimulátorban ) rendesen. Nagyon sok rendes kódot megnéztem már és a memória foglalás terén nem találtam különbséget. Az ugrások nem értem miért rosszak, de ez most nem lényeg. Am meg nem szeretem ha minden második sor meg van címezve. A RET se tudom, hogy mit csinál, de örülnék ha elmagyaráznád, de ha az INIT részre való rácsorgás azt jelenti, hogy újraindul a program akkor amúgy nem szokott ilyet csinálni. A PIC egy 16f871 es. Ha leírnád a másféle memóriadefiniálós módszert akkor megpróbálnám úgy is, hátha működik. Üdv Gabi!
Idézet: „akkor a szimulátor nem mindig használja a 20 as regisztert a szimuláció közben, sőt van olyan, hogy a kód egyik részénél azt használja a másiknál meg nem és így egy teljes baromság jön ki az egészből.” Gondolom a bankokat nem allitottad be ill elallitottad valahol -- hasonlo hibakra gondolnek elso korben...
Áttúrtam az adatlapot és kibogarásztam minden konfigurációs bitet aminek köze lehet a PIC18F26K80 RC0 és RC1 lábain lévő SOSCO SOSCI funkciókhoz:
De továbbra is stabil H szint mérhető ezen a két lábon, hiába állítok be a programban nullát (bcf LATC,0 és bcf LATC,1). Azért gondoltam hogy a másodlagos oszcillátor (SOSC) lehet a ludas, mert ez a közös a két lábban. Valami ötlet? Kezd kilátástalanná válni a helyzet...
Találtam még valamit, CONFIG1L regiszter SOSCSEL<1:0> bitjei:
Idézet: „SOSCSEL<1:0>: SOSC Power Selection and Mode Configuration bits 11 = High-power SOSC circuit is selected 10 = Digital (SCLKI) mode; I/O port functionality of RC0 and RC1 is enabled 01 = Low-power SOSC circuit is selected 00 = Reserved” Szerintem ez lesz az! De nem ismer ilyen regisztert hogy "CONFIG1L". Aha... ezt kell a program elején a sok "config"-al beállítani, igaz?! És melyik lesz az a sok közül?
A Configure/Configuration Bits ablakban megnéztem, "High Power SOSC circuit selected"-re van állítva. Vagyis volt mert látom hogy itt át tudom állítani... de az imént idézettek közt semmi sem változott. Na mindegy, kipróbálom most hátha jó... Szerk.: Sajnos semmi változás. Megnéztem rögtön; a lefordítás és beégetés után a Configure/Configuration Bits ablakban visszaugrott "High Power SOSC circuit selected"-re.
Szia!
CONFIG1L: SOSCSEL<1:0> bitek 10 = Digital (SCLKI) mode; I/O port functionality of RC0 and RC1 is enabled CONFIG1H: IESO, FCMEN bitek
Aha...
De nehéz szülés volt... szuper!
Valószínűleg nyertél.
A file map szerint az adatlapban két részben van a memória. Van 96 bájtnyi a bank0 ban és 32 bájtnyi a bank1 ben. A bank0ás rész 0x20 tól, a bank 1es 0xA0 tól kezdődik vagyis stimmel amit az első hozzŕszólásomban írtam megfigyelésként. Akkor annyi hogy mindig be kell írnom egy memóriŕs művelet előtt, hogy BANSEL BANK0 ? Akkor viszont azt nem értem, hogy pl a tris biteknél miért az kell, hogy BANKSEL TRISX ha a tris regiszterek a bank1 ben vannak. Vagyis, hogy miért nem az hogy BANKSEL BANK1 Várom a megvilágosodást.
Szia!
Fordítva.... A Bank0 kiválasztásához a banksel PORTB, a Bank1 kiválasztásához a banksel TRISB forma ajánlott...
Új kontroller, új beállítások és sajnos új errata...
A ChipCAD honlapján látom a hírek között, hogy új mikrovezérlők vannak a láthatáron!
A Microchip új, 60 MIPS-es 16 bites dsPIC33E és PIC24E PIC mikrovezérlő családot jelentett be. A nagyteljesítményű dsPIC33 és PIC24 típusokat az "E" típusjelzéssel látták el. 536 KB program memória, 52 KB RAM, 4 UART, 4 SPI, 2 I2C, 2 ECAN, USB 2.0 OTG, kibővített perifériakészlet, és 122 I/O láb ami csak pár jellemző a legerősebb, 144 lábbal rendelkező dsPIC33E illetve PIC24E képességeiből. A nagy memória és az USB illesztő mellett édekes az is, hogy a 9 db számlálóból 8 db remap-pelhető. Hogy ezt miért nem tudták hamarabb kitalálni!
Sziasztok!
Hogy lehetne a PIC adatmemória tartalmát kiolvasni PICKIT2-vel?
Dehát a mondjuk a bank0 miért nem a
BANKSEL BANK0 Val kell kiválasztani ha egyszer ez a neve? Ha mondjuk a trisc be akarok írni akkor annak a bankját miért a BANKSEL TRISB -vel kell? Vagy akármelyik egy a kiválasztandó bank által tartalmazott regiszter kiválasztásával ki lehet választani az adott bankot? Nem értem a logikát... De az eddigiért is köszi mindenkinek! :worship:
RAM-ra vagy DATA EEPROM-ra gondolsz?
Az elobbit sehogy, az utobbit meg nehogy mar ne tudja...
Hogy egyszerubb legyen. Kulonben neked mindig tudni kellene, hogy az adott regiszter melyik bankban van es annak megfeleloen a bank0,1,2,stb-t irogatni. Igy meg eleg a regisztert kivalasztani, a fordito tudja, hogy ez melyik bankban van es automatikusan oda allitja a szamot. A leforditott .HEX-ben termeszetesen a megfelelo szam fog allni ott a banksel utan.
Igy kell annak, aki nem 18F-et hasznal... ott az osszes altalanos regisztert egyszerre erheted el, igy nem kell ezzel foglalkozni, csak akkor, ha sokkal tobb memoriat hasznalnal fel valtozoknak vagy mondjuk USB puffernek. De az indexregiszter meg ezt is megoldhatja. Egyszeruen nem ertem ezt az eszelos ragaszkodast a 16F84 es leszarmazottaihoz...
RAM-ot kellene kiolvasni
0x0801-tól 0x17FE-ig
Szia!
Debuggolás alatt ki tudod olvasni a RAM-ot, pont ez a lényege... Most látom az új hozzászólásodat: ez milyen PIC ( én nem szoktam ennyi RAM-ot olvasni ilyen magas címről, de szerintem a debuggolás miatt működnie kellene! )?! Steve
Igy kezdodik egy progi: A fejlecet es az include-ot beteszed.
Ha akarsz valami definiciot, tehat hogy ezekkel a nevekkel hivatkozhass ra, akkor teszel par ilyet:
Johetnek a valtozok: En ezt szoktam hasznalni, a szam mutatja, hogy honnan indulnak a valtozok.
*************************** Es innen jon a lenyeg, a ket (harom) vektor. Nem tudom, te hogyan uszhattad meg, de mindegy. A PIC-eknel ezek valtozhatnak, nem mindenhol ott van, adatlap megmondja.
Szoval azert a program elejenek igy kellene valahogy kineznie. Persze, ezek onkenyes ertekek. Az ugrasok azert rosszak, mert memoriaszervezes miatt az eltero tipusu PIC-ek eltero szohosszt hasznalnak. Igy masik PIC-en az osszes ilyet irhatod at vagy hibas helyre ugrik. Miert faj az, hogyha BABA1, BABA2, BABA3 stb. lesznek ott? A RET az az en hulyesegem, RETURN-t kellett volna irnom, csak a 8x86-os assemblybol annyira megszoktam mar, hogy makrot is irtam ra, hogy itt is hasznalhassam. A szimulator biztosan jo, de nagy meglepetesek lesznek szerintem, ha csak ez alapjan akarod majd valodi PIC-ben futtani a kododat.
Röviden el tudnád mondani?
Még nem használtam ezt a funkciót. PICKIT2-vel megy?
A PK2-t ne programozónak állítsd be, hanem debuggernek és így töltsd be a programot. Ezután gyakorlatilag szinte ugyanúgy tudod használni, mintha MPLABSIM-et használnál ( breakpoint és ott meg tudod nézni a regiszterek állapotát a WATCH-ban). A korlátokat nem tudom, mert én nem használtam még ennyi RAM-ot, amire kíváncsi lettem volna!
Steve
Idézet: „Ha mondjuk a trisc be akarok írni akkor annak a bankját miért a BANKSEL TRISB -vel kell?” Ki mondta, hogy azzal kell? A TRISC előtt a BANKSEL TRISC-vel illik a bankot kiválasztani. Mivel mind a kettő a bank1-ben van a BANKSEL TRISB-nek és a BANKSEL TRISC-nek is ugyan az a hatása. A lényeg, hogy a regiszter manipulálása előtt a megfelelő bankot válaszd, és amíg ugyanabban vagy, nem is kell ismét a BANKSEL.
Sziasztok!
Itt a fórumon találtam digit óra és hőmérő kapcsolási rajzot, ezt szeretném megépíteni. A rajzon 16F628A típusú PIC szerepel, de az üzletben keresve "csak" PIC 16F628A-I/P jelűt találtam. Kérdésem hogy a típusszám végi I/P jelölés mit jelent, jó-e ez a PIC nekem? (gondoltam hogy a tokozásra utal, csak ott bizonytalanodtam el amikor az SMD tokozás mellé ugyanezzel a számmal más paramétereket dobott a katalógus) ...kösz
Szia!
Többféle filozófia használható: - A programozó minden esetben tudja, hogy a következőkben melyik bank-ban található regiszterekkel szeretne foglalkozni: ekkor
sorok után használhók a banksel Bankx formák a bank0..3 kiválasztására. A banksel makro mindig állítja az RP1 és az RP0 bitet is. De ha pontosan tudom, mit szeretnék, akkor elég lehet pl csak az RP1 -et állítani ld. bank2 kiválasztása, a Bank0 beállításának tömör, de mellékhatásokat okozó lehetősége a clrf STATUS... - Lehet saját macro -kat készíteni a bankváltáshoz
- Ha azt szetetnénk elérni, hogy a forrás több fajta (a családhoz tartozó) kontrolleren is fordítható legyen kicsit bonyolult lesz a fentiekkel. Pl. a 16F628 -ban az EEADR, EEDATA és az EECON1 regiszterek a Bank1 -ben vannak, a 16F88x -ben az EEADR, EEDATA a bank2-ben, az EECON1 pedig a Bank3 -ban. A forrásban célszerűbb a következőket használni:
Így a kontzroller típusától függetlenül a jó bank kiválasztás fordul a kódba (persze ára van - akkor is belekerül a kódba, ha nincs is rá szükség...)
Szia!
I - ipari kivitel - hőmérséklet tartomány P - plastik DIP tokozás.
Kösz! Akkor intézem!
I mint Industrial - az ipari homerseklet-tartomanyra utal, azt hiszem -40 es +125 fok kozott fog mukodni.
A P a Plastic DIP, a tokozasra utal, vagyis ez nem SMD, hanem hagyomanyos 2.54mm labtavolsagu IC kinezetu valami.
Sziasztok! Én azt szeretném megkérdezni, hogy a Velleman VM134-es PIC programozójáról kinek mi a véleménye, hozzájutottam egy ilyenhez, és ha ez hobby célra megfelel akkor nem vennék másik programozót.Bővebben: Link
|
Bejelentkezés
Hirdetés |