Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   434 / 1320
(#) Jobbagyag válasza watt hozzászólására (») Márc 17, 2009 /
 
Hosszasan bamultam a map file es azt hiszem dereng valami. Ennek ellenere a kerdesem valoszinu nagyon amator lesz.
Az jott le, hogy csak egy picit log tul. Keretik nem nevetni Azaz ha roviditem a programom mondjuk a 6 tullogo cimkehez tartozo szakasznyival (szamitasom szerint 20-30 utasitasnyi lehet) akkor belul tudok maradni a 0.lapon. Vagy ez teljesen rossz megkozelites mert mindannyian a linker kezeben vagyunk?
Masik opcio lehetne, hogy a tullogo szakaszokhoz (minden utasitas ele?) beirni valami pagesel szeru varazsiget, de ez a megoldas nekem se tetszik.
A 18F-es PIC-ekre atterest mar fontolgattam, mas megfontolasbol ugyan (az remlik, hogy azok alapbol tudjak a feszultseg esest figyelni es elmenteni a szukseges regisztereket). Most csak azert hezitalok mert 3 het mulva kellene a programnak menni es nem tudom egy masik PIC-re valtas mi minden finomsagot rejthet(meg csak 16F877A-t hasznaltam eddig). De ha van valami teljesen kompatibilis amibe csak attoltom a programot es megy minden nyugoskodes nelkul(oldalvaltas etc.) akkor probat tennek(labkiosztas elteres nem gond, a NYAK keszites meg ugyis elottem van).
Ugy veszem ki szilva hozzaszolasabol hogy az LCALL es tarsai meg nem nekem valo, de ha szerintetek ez iranyba kell menni beleasom magam.

A rendesen megirassal teljesen egyet ertek mentsegemre legyen mondva, hogy mindenkepp szempont volt, hogy nagyon attekintheto legyen, mert evenete 1x kell ezt fejlesztgetnem es ha tul sok osszevonas rovidites van benne, mar sokszor egy honap mulva is kin kibogozni mit is hogy csinaltam. A cimkek is ezert hosszuak, informativakat akartam.

Hp41C hozzaszolasara azt mondanam, hogy eloszor ugy volt, ahogy az adatlap irta. De mivel akkor meg egesz mas bajai voltak, arra gondoltam hatha egy timer megszakitas kavar be, ezert mar az eeprom mentes elejen letiltottam mindent (BCF INTCON,GIE), majd amikor visszamegy a main-be (megszakitas laprol hivodik most, de mar probaltam nem onnan hivni, az sem volt jo) az elso utasitassal visszaallitom 1-re).

Amugy ez egy kerti ontozo lenne, de mar ott tartok, hogy megkerem a szomszedot reggelente jarjon korbe egy kanna vizzel

(#) potyo válasza Jobbagyag hozzászólására (») Márc 17, 2009 /
 
2-3 nap alatt át lehet írni az egészet egy 18F-es PIC-re. 16F877 helyett pl. 18F4520 jó is lenne.
(#) Jobbagyag válasza potyo hozzászólására (») Márc 17, 2009 /
 
Gondolom akkor annak nem csak 7FF-ig tartana a 0.oldala vagy akar teljesen el lehet felejteni az oldal valtas dolgokat?
Veszek ma egyet, bajom nem lehet tole, aztan majd meglatjuk.
Ha tudnatok esetleg valami linket ahol a kulonbozosegek ki vannak domboritva...
Remlik valami atteres egyik PIC-rol a masikra itt a forumban is, majd ra is keresek.
Kosz.
(#) szigetivan hozzászólása Márc 17, 2009 /
 
sziasztok!

Lehet olyat,h. c-ben megírt programot átfordítok asm-be?
Azt tudom,h.lehet vegyíteni őket, de hogy érdemes, kell valami keret ami alapján egyiket belerakjuk a másikba?
Köszi
(#) potyo válasza Jobbagyag hozzászólására (») Márc 17, 2009 /
 
18F-nés is van határa a programmemóriának, de valami 64k rémlik, annyi rom meg eleve kevés tipusban van.
(#) icserny válasza szigetivan hozzászólására (») Márc 17, 2009 /
 
Tulajdonképpen mit is akarsz kérdezni?
(#) Hp41C válasza Jobbagyag hozzászólására (») Márc 17, 2009 /
 
Szia!

Az átírásnál vigyázni a flag -ek állására a STATUS regiszterben! Ha jól emlékszem nekem itt voltak gondjaim: az incf /decf a 18F-en nem csak a Z, az rrf, rlf nem csak a C bitet állítja. A 16F -en kihasználjuk, hogy csak ezek a bitek változnak!

A 18F-en nem kellenek a status bitek vizsgálatához a bitteszt utasítások, hanem a brz, brnz,... stb használhatók a művelet után.

- A rövidítésre volt már egy ötletem: a táblázatok átrakása a 0800-0FFF lapra.

- Másik ötletem, elég csak egy hosszabb eljárást áttenni. Olyat kell kiválasztani, amiben nincs kiszámított ugrás.

A hívása a 0. lapról :

movlw high(cim)
movwf PCLATH
call cim
clrf PCLATH ; a call és ezen utasítás között nem lehet goto és másik call
.....

org 0x800
cim
; az eredeti verzió programrészlete
;....
goto cim1 ; Ha a PCLATH megtartotta a hívaskor beírt értéket, ez is menni fog...

cim1

; Folytatás

return ; Itt a vége


- Ha feltennéd, vagy elküldenéd nekem a programot (e-mail), akkor az a harminc utasítás biztos kijönne belőle.... (Nincs nagy kertem, kézzel öntözöm....)


Szia

(#) szigetivan válasza icserny hozzászólására (») Márc 17, 2009 /
 
van két programom részletem egyik asm, másik c-ben írva, és ebből a kettőből állna a programom.
ha nem akarom mondjuk a c-t átírni asm-be, akkor hogy tudom őket ötvözni?milyen módon lehetséges ez?
(#) kiskacsa2009 hozzászólása Márc 17, 2009 /
 
Sziasztok!
Szeretnék 32 LED-et vezérelni egy PIC-ről.
Melyik az erre legalkalmasabb PIC (programozható)???
Válaszotokat előre is köszi.
(#) csiefjancsi hozzászólása Márc 17, 2009 /
 
Sziasztok!

Szeretnék segítséget kérni: ! Olyan embert keresek aki ismeri, vagy az Oshonos picbasic-et. Elakadtam és szeretnék segítséget illetve tanácsot kérni, hogy hogyan tovább!

De ha tudtok valamilyen linket vagy efféle fórumot már egy kicsit lehet, hogy az is segítene.

Konkrétan arról van szó, hogy vetettm egy DS1820 hőmérőt amire azt mondták hogy megeggyezik a DS18S20-al.
Nade! :aztán így utólag rájöttem, hogy szerintem mégsem egyezik, mert a DS1820-ban van azonosító amit ki kell ólvasni és csak azután lehet lekérdezni a hőmérsékletet!!!
----> hát szóval erre nem tudtam még rájönni hogy hogyan is kell ezt !!
Már áttanulmányoztam mindkét adatlapot de még nem értem hogy hogyan hozzam össze a basic-el.

Ez ügyben szeretnék egy tapasztalt kollégától tanácsot kérni!
Ha Valaki tud, annak előre is köszönöm!
(#) icserny válasza szigetivan hozzászólására (») Márc 17, 2009 /
 
Erre szerinted hogy lehet válaszolni, ha nem árulod el, hogy milyen C-ről és ASM-ről van szó?
(#) Hp41C válasza szigetivan hozzászólására (») Márc 17, 2009 /
 
Szia!

Létrehozol egy projectet, hozzáadod a C és az ASM fájlokat, a c -hez beállítod a fordítót, az ASM -hez beállítod a Mplab asm -et. Linkernek a C linkerét. Kell még egy linker script.

A továbbiakban azt kell még megoldani, hogy különbőző címtartományra forduljanak, a címkéket elérjék.

Különos figyelmet érdemel a reset és a megszakítási rutin.

Mintának a PicKit2 firmware forrását ajánlom, a Microchip honlapjáról letölthető.

(#) szigetivan válasza Hp41C hozzászólására (») Márc 17, 2009 /
 
köszi, megpróbálkozom vele.
(#) szigetivan válasza icserny hozzászólására (») Márc 17, 2009 /
 
szia!
csak általánosságban kérdeztem,h.lehetséges-e ilyen, és ha igen, milyen elv szerint.
sorry ha nem volt egyértelmű.
(#) bbalazs_ válasza kiskacsa2009 hozzászólására (») Márc 17, 2009 /
 
Barmelyik, ha shift registerrel csinalod. Pl. tpic6c595 pl., ezzel nagyfenyereju ledeket is meghajtathatsz vagy ha par mA eleg, akkor 4094-es.

(#) kiskacsa2009 válasza bbalazs_ hozzászólására (») Márc 17, 2009 /
 
De nekem olyan kell amivel 32 Ledet tudok meghajtani egyszerűen (egy led egy lábra)


ui.: a programozásra használt c nyelv megegyezik a C++ , c# nyelvekkel?
Valamint milyen könyvet ajánlotok erre a célra?
(#) pet hozzászólása Márc 17, 2009 /
 
Sziasztok!

Egy egyszerű kérdésem lenne. Egy négylábú kvarcoszcillátort hogyan kell bekötni a PIC-hez?
Lábai:
N.C
GND
Output
V..

Melyiket hova kell kötni?
És hogy ehhez ugye nem kell hozzá kötni a szokásos 22p és trimmer kondikat?

Kösz...
(#) bbalazs_ válasza kiskacsa2009 hozzászólására (») Márc 17, 2009 /
 
Valami 40 vagy 44 labubol (pl. 16f874a-bol) talan ki tudsz preselni annyi kimenetet. De hogy minek, mikor a shift register flexibilisebb, ha akarod, akar 500 leded is lehet...
(#) Hp41C válasza pet hozzászólására (») Márc 17, 2009 /
 
Szia,

Az Output-ot kell a CLKIN lábra vezetni, a config biteknél külső órajelet EC beállítani (a CLKOUT akár digitális i/o is lehet - típusfüggő) .


Szia
(#) Hp41C válasza kiskacsa2009 hozzászólására (») Márc 17, 2009 /
 
Szia!

32 LED egyszerre bekapcsolva, a leadott áram okozta disszipáció meghaladhatja a PIC által elviselhetőt. Valamilyen külső meghajtó úgyis kell.

Elég egy kisebb pic meg a shift regiszter (74HC595), SPI - I2C portbővítő.

Ha mégis 40 lábú típusra esik a választás a LED-eket tranzisztorral kellene kapcsolni.

Szia
(#) kiskacsa2009 válasza bbalazs_ hozzászólására (») Márc 17, 2009 /
 
De még mindig nem vágom, hogy lehet egy 10 lábú izéről, egy, vagyis 32 db ledet meghajtani
(#) pet válasza Hp41C hozzászólására (») Márc 17, 2009 /
 
Tehát akkor CLKOUT-ot üresen hagyom?
Az adatlapján nézem a lábait, van még N.C és V..valami alsó indexben Ezeket hova kötöm?
Én nem akarok még programozáshoz érteni. Van egy kész programom Vicsys frekimérőjéhez. Ebbe módosítanom kell valamit mert nem kristályt használok?

Köszi a választ!
üdv.
(#) watt válasza kiskacsa2009 hozzászólására (») Márc 17, 2009 /
 
Az a helyzet, hogy ez nem PIC kérdés! Említettük, hogy a PIC egy elektronikai alkatrész(méghozzá elég bonyolult!). Ha nem tudsz áramkört tervezni, illeszteni hozzá, akkor addig ne kezdj PIC-et programozni, amíg az alapokat meg nem tanulod.
Természetesen nem ezen a topicon keresztül kell ezt megtenned! Helyette pl. a Kezdő kérdésekben.
(#) watt válasza szigetivan hozzászólására (») Márc 17, 2009 /
 
Nem találod az írásjeleket és a shiftet? Vagy szándékosan írsz így? Ha igen, akkor nem látunk szívesen!
(#) skeletornb válasza kiskacsa2009 hozzászólására (») Márc 17, 2009 /
 
Szerintem legegyszerűbb, ha multiplexálva hajtod meg őket, kapcsolótranzisztor segítségével. Képzelj el egy 4 oszlopos, 8 soros LED mátrixot. Egyszerre mindig csak az egy oszlopon lévő 8 ledet "gyújtod ki", aztán a következő oszlop és az az utáni. Az elrendezést nem tudom milyen, de ezt a ledmátrixot ki is lehet "fektetni" egy sorba. A dolog csattanója az, hogy ezt az emberi szem úgy látja, hogy egyszerre égnek a bekapcsolt ledek(persze, ha elég nagy a sebesség). Extrém esetben, ha kívülről kapuzod, akkor elég 5 láb is.
(#) pixels válasza kiskacsa2009 hozzászólására (») Márc 17, 2009 /
 
Úgy, hogy a shift regiszternek van egy órajel, meg egy adatbemenete, meg egy engedélyező meg strobe. Ez egyben tároló is, mint egy memória, megőrzi a beletöltött adatokat.

Ráadásul ezeket egymás után fel lehet fűzni, tehát ha összeraksz 4 db 4094-es IC-t, akkor továbbra is van egy adat, egy órajel bemeneted, egy engedélyező, egy strobe, de van 32 kimeneted (az összefűzésről az adatlap ír)

A feltöltés: az adatbemenetre rakod az első bitet, az órajel aktiválod, majd inaktiválod. Ezt annyiszor, amennyi kimeneted van. Az első adatbit az utolsó kimeneten, a második adatbit az utolsó előtti kimeneten lesz, és így tovább.

Aztán ha kész van a feltöltés, aktiválod, majd inaktiválod a strobe lábat, ígya tárolóból kiírásra kerül az adat a kimenetekre.

Az engedélyezést lábbal pedig bekapcsolhatod, vagy kikapcsolhatod a kimeneteket, de az adatokra nincs hatása, az úgy marad, ahogy addig benne volt.

Kicsit nézz utána a működésnek, mert felületesen írtam csak.
(#) watt válasza Jobbagyag hozzászólására (») Márc 17, 2009 /
 
Ha bele tudod szorítani, akkor megfelelő a megoldás.
De próbáld meg megérteni ezt a lapozást, nem olyan vészes, csak oda kell rá figyelni. Fogsz néhány rutint és átteszed a következő lapra. Ennyi.

A PAGESELT csak a GOTO, vagy a CALL utasítás előtt kell kiadni. Vigyázz, mert két sort fordít a programba, ami elronthatja a BTFSS jellegű elágazásokat. Ezért a lapkiválasztást még ezek előtt kell elvégezni, vagy más módon gondoskodni a megfelelő elágazásról.

A 18F-re áttállás legalább olyan nehéz lesz neked, mint ezt megoldani, ezért én nem ajánlom első körben, de a következő PIC-ed ne 16F legyen, ha ilyen nagy programot akarsz írni. Kicsi programoknak viszont továbbra is megfelel egy 16F627A vagy hasonló.

Az LCALL szintén két sorosra fordítódik(illetve 3), ezért figyelni kell a fent említett elágazások lekezelésénél. Írj egy példát és nézd meg szimulátorban, hogy mit lehet itt elrontani, utána már menni fog!

Az első programom nekem is ilyen keszekusza lett(ma is működik 24órában évek óta!), ezért ne aggódj, bele fogsz jönni!

Hp41C nagyon magas szinten ért a programozáshoz, ezért nem biztos, hogy a te fejeddel gondolkodik. Ezért lehet, hogy Ő nagyon egyszerűnek látja a megoldást, ami neked nem feltétlenül az. Igyekezz megérteni, mert jókat mond ettől függetlenül!
(#) szigetivan válasza watt hozzászólására (») Márc 17, 2009 /
 
Nem volt szándékos!
(#) watt válasza szigetivan hozzászólására (») Márc 17, 2009 /
 
Én csak azt kérem, hogy tiszteld meg a válaszolókat azzal, hogy magyarul írsz!
Köszönöm!
(#) szigetivan válasza watt hozzászólására (») Márc 17, 2009 /
 
Ha ezt érzékenyen veszítek, akkor jobban figyelni fogok erre!
Még1x bocsi, ha ezzel megbántottam volna v.kit!
Következő: »»   434 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem