Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
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 ![]() 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 ![]() 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 ![]()
2-3 nap alatt át lehet írni az egészet egy 18F-es PIC-re. 16F877 helyett pl. 18F4520 jó is lenne.
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.
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
18F-nés is van határa a programmemóriának, de valami 64k rémlik, annyi rom meg eleve kevés tipusban van.
Tulajdonképpen mit is akarsz kérdezni?
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
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?
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.
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!
Erre szerinted hogy lehet válaszolni, ha nem árulod el, hogy milyen C-ről és ASM-ről van szó?
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ő.
köszi, megpróbálkozom vele.
szia!
csak általánosságban kérdeztem,h.lehetséges-e ilyen, és ha igen, milyen elv szerint. sorry ha nem volt egyértelmű.
Barmelyik, ha shift registerrel csinalod. Pl. tpic6c595 pl., ezzel nagyfenyereju ledeket is meghajtathatsz vagy ha par mA eleg, akkor 4094-es.
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?
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...
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...
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
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
De még mindig nem vágom, hogy lehet egy 10 lábú izéről, egy, vagyis 32 db ledet meghajtani
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 ![]() É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.
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.
Nem találod az írásjeleket és a shiftet? Vagy szándékosan írsz így? Ha igen, akkor nem látunk szívesen!
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.
Ú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.
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!
Nem volt szándékos!
![]()
Én csak azt kérem, hogy tiszteld meg a válaszolókat azzal, hogy magyarul írsz!
Köszönöm!
Ha ezt érzékenyen veszítek, akkor jobban figyelni fogok erre!
Még1x bocsi, ha ezzel megbántottam volna v.kit! ![]() |
Bejelentkezés
Hirdetés |