Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Eszedbe ne jusson esetleg kijavítani az említett dolgokat!
Attila! Ha rám hallgatsz, próbáld assemblert megtanulni, és 18F PIC-el kezdeni. Segíteni fogok haladni a kezdetektől itt a topicban. Ne szégyeld, hogy jelenleg nem érted a programozási logikát, hidd el, ez nem nyelv függő és hamar bele lehet jönni! Senki nem így született! Az asm nem ördöngősség, szépen lehet vele haladni. Fontosabb a PIC megismerése, de ebben is tudunk segíteni, ha kérdezel! Egyébként örülök, hogy végre rászántad magad!
ui. Szilva nagyon jól leírta a lényeget a nyelvről és a nyákokról. Mivel neked a nyák nem okoz gondot, én azt javaslom a leírtak alapján, hogy készíts egy próbányákot úgy, hogy minden lábról tüskecsatik vezessenek ki, a kristályt tervezd jumperekkel leválaszthatónak, és tervezd rá az ICSP csatit. Erről az oldalamon is alálhatsz példást. Veszel egy 18F2550-et, és go. Vegyél USB B aljzatot is és tervezd rá egy panelre amit a próbanyákra dughatsz. Minden egyéb kiegészító áramkört(legfontosabbak ledek, osztók, potik, szűrők(AD-hez), soros illesztők(RS485, RS232), stb.) hasonló módon készíthetsz el. Nekem ez bevállt, minden áramkörömet így fejlesztem. Tiszta élvezet elhiheted!
Szia!
Köszönöm a kimerítő választ! Mint írtam tegnap, én nem tudok programozni. Kivéve a POV-Ray nyelvét, amit magamtól megtanultam. A C nyelv a POV-Ray nyelvéhez nagyon hasonló, ezért lenne valami kis alap amire talán tudnék építeni. Egyébként is szerintem hatalmas nagy fába vágom most a fejszémet, így (C-vel) talán valamivel könnyebb lesz. A topik 1226 oldalának elejétől való végigolvasása biztos segítene, de erre nekem nincs időm. Inkább a Kónya-féle könyvet fogom lapozgatni vagy használom a keresőt. A PICkit2 starter kitet megveszem a Farnellnél 13000Ft-ért, nem akarom én megépíteni.
Rászántam, mert a munka mellett sajnos már nagyon kevés szabadidőm van, nincs energiám arra hogy beüljek a műhelybe, bekapcsoljam a műszereket, elővegyek egy áramkört és méricskéljek rajta stb... Viszont a laptopra egy USB-s programozót rádugni és figyelni a LED-eket sokkal egyszerűbb.
Most hogy többen is írtátok és Skori barátom is a napokban asm-ben ugrott neki gondolkodom, hogy talán akkor mégse legyen C. Viszont mivel mint mondtam semmilyen más nyelvet nem ismerek a POV-Ray-en kívül, ezért most lenne pár hülye kérdésem: Assembly-ben is lehet makrókat, bennük pedig változókat definiálni és előhívni? Lehet benne ciklusokat készíteni mint a mint a POV-ray-ben? Ja és miért 18f-es PIC-el kezdjem? A PICkit2 starter kit-hez használhatok 18f-es PIC-et is a hozzá járó 16f690 helyett?
18F: Azért, mert könnyebb és sokkal többet tud.
A starter kitről azt hiszem szilva írta, hogy ezt használta 18F-re. Lehet, hogy alakítani kell, de ez nem lehet gond, de segíthetünk. Lehet makrókat is, és lehet deklarálni a változókat is, névvel stb. Lehet ciklusokat is. Nézz fel az oldalamra van néhány egyszerű példaprogram 18F-re. Ott van a config bitek én általam jobban áttekinthető formájú beállítása is(adatlapból így jobban tudod mit állítottál!), de azt is meg fogod látni, hogy szövegesen is meg lehet adni, amit a gyár támogat. Lehet választani, mert egyébként mindegy.
Szia. Először én is a c nyelvet akartam megtanulni, de az itt olvasottak meggyőztek az assembler használatáról, úgyhogy ezzel kezdem.
Ugyanúgy van benne makró, változó, ciklus. Az áramkörök megépítését egy dugdosós boardon kezdem, az összes dil tokú pic használható rajta, nem kell külön nyákot gyártani hozzá, tanuláshoz nagyon jó. Ajánlom figyelmedbe ezt az oldalt:PIC16F887 Microcontroller, A legtöbb pic-hez használható, nagyon jó magyarázat.
En nem ismerem ezt a POV-ray-t, de a C lenyegeben nem a szintaktika all, hanem a gondolkodas mod ahogy egy "C" programot meg "kell" irni. Ez amugy minden nyelvre igaz.
A C-nel alegyeg a pointereknel van, tehat az egyszerubb dolgokat kiveve mindent mutatokkal csinal. Ez olyannyira igaz, hogy tulajdonkepp a tombok kezeleset is belulrol ilyen mutatotkkal oldja meg. Ez sajnos sok problemat hoz magaval, de errol most nem erdemes beszelni. A mikrokontrollereknel a kovetkezo problema a C-vel kapcsolatban, hogy a mikrokontroller nem szamitogep. Nagyon kicsi eroforrasokkal rendelkezik, es nehany mikrokontrollernek nincs hardveres verme, mint pl a 8 bites PIC-eknek sincs. Emiatt a lokalis valtozok es fuggveny parameterek csak trukkokkel erhetok el a fordito szamara. Pl a C18-ban indirekt memoria cimzessel hoznak letre egy frame-et a memoriaban es azt hasznaljak veremkent, de emiatt a kodmeret es a sebesseg hogy finoman fogalmazzak nem eppen optimalis. Ilyen es ehhez hasonlo dolgok miatt nem elegendo a C-t onmagaban egtanulni, meg azt is meg kell tanulni, hpgy a PIC-eknel hogyan kell a kodot megirni, milyen trukkoket kell alkalmazni (pl globalis valtozokat alkalmazni a fuggveny lokalis valtozoinal avagy megvaltoztatni azok tarolasi osztalyaikat static-ra vagy overlay-re stb stb stb A C-re a nyelv kitalaloi anno azt mondtak, hogy az alacsony szintu nyelv, masok ugy emlegetik, mint magas szintu nyelv, mivel sok nehez dolgot levesz az ember vallarol. Pl ez a ciklus szervezes, vagy mas program szerkezet nem kezzel allitando elo, hanem megvannak ra a nyelvi eszkozok. ASM-ben ezeket le kell bontani. Kicsit olyan, mint ha a kerdesre, hogy mit csinalsz reggel igy felelnel C-ben: 1. Felkelek az agybol 2. Megmosom a fogam 3. Feloltozom ASM-ben pedig: 1. Kinyitom a szemem 2. Asitok 3. Kezemet a szam ele teszem ilyenkor 3. Felulok az agyban 4. Felre huzom a takarot ....es igy tovabb... Sokkal reszletesebben magyarazod el. Emiatt van az, hogy reszleteiben kell ismerned a PIC-et, ha meg akarod tanulni, es emiatt (is) ajalnjak neked, hogy ha meg akarod tanulni a PIC-et, akkor ilyen modszerrel kell. Kesobb pedig at tudsz terni C-re vagy barmi mas nyelvre.
Annyit még röviden, hogy minden programnyelvben megtalálhatóak az alapvető kellékek a szekvenciák felírásához PIC nél.
Ezek a következők: - Változók deklarálása - Táblázatok létrehozása, elérése a program ill. az EEPROM memória területen - Makrók készítése - Ciklusok szervezése - Elágazások kezelése - Szubrutinok lehetősége, hívása - Megszakítások kezelése Ha kihagytam valamit, majd a többiek kisegítenek. (lassan mennem kell, ha nem válaszolok, akkor ezért van...)
Azért lehet hogy először a Chipcad-nél is érdemes lenne körbenézni.
PICkit 2 Debug Express 9600Ft+FA = 12000FT (van készleten) PICKit 2 programozó 6700 Ft+FA = 8375Ft (van készleten).
Hát jól van, meggyőztetek. Akkor marad az asm. Még jó hogy nem vettem még meg a Kónya-féle könyv harmadik kiadását, mert az ahogy néztem inkább a C nyelvű programozásról szól. Legyen inkább helyette az első kiadás?
Van egyébként egy maréknyi hülye kérdésem, de nem akarlak titeket fárasztani. Majd inkább később. Ezt azért megkérdem: Szeretnék egy feszültség-mérő műszert amiben lenne 4-5db jelfogó az automata méréshatár-váltás végett. Az A/D átalakítást és a 4-5db relé kapcsolását (automata méréshatár-váltás) a PIC végezné és egy 2*16-os LCD-re szeretném hogy kiírja a mért értéket. Ez a feladat mennyire bonyolult? Mondjuk az egy darab LED villogtatásától ez mennyire van messze?
Szia!
Idézet: „Még jó hogy nem vettem még meg a Kónya-féle könyv harmadik kiadását” Ehhez azért hozzáfűznék egy dolgot! A 3. kiadás CD mellékletén rajta van pdf formátumban a teljes 2. kiadás is. Szerintem érdemes rajta elgondolkodni. A másik kérdésedre: A LED villogtatástól azért messze van, de nem elérhetetlenül. Minden attól függ, hogy mennyire érez rá az ember az elején, és persze mennyi ideje van gyakorolni, olvasni, tanulni a témában. Üdv.
Szia!
És tényleg rajta van a második kiadás, köszönöm a tippet!
Üdv
Olyan létezik hogy egy PIC-nek csak pár lába száll el? Tehát pogramozni lehet, program megy rajta, de 2 láb nem ad ki feszt? Köszi
Igen. Bemenetkent meg hasznalhato lesz.
Én inkább a Chipcad-ban vennék PICkit2-t, és vagy a Debug Express-t, vagy szóló programozót és egy 44-pin Demo Board kitet. Ekkor megkapod ugyanazt a szerelt kártyát, amit a Debug Express-ben is adnak, plusz kettő ugyanilyen, csupasz panelt. Ezekre lehet TQFP tokos, 44 lábú 18F-et feltenni, és pl. az egy jó tanulás, ha az eredetileg 16F887-re megírt assembly példákat átírkálod úgy, hogy a saját 18F-es PIC-eden működjenek.
Ha van kedved, akkor akár tervezhetsz is egy furatszerelt "44-pin Demo Board"-ot, ebbe lehetne már foglalatot rakni, így könnyen cserélhető benne a PIC, ha szükség van rá.
Nem, én mindenképp DIL tokos lábas jószágot szeretnék programozni először és nem akarok most magamnak nyákot gyártani. A demó panel jó, aztán legfeljebb átrakom a PIC-et egy dugdosós próbapanelra.
Csak a PICkit2 starter kit sajnos nincs a chipcad-nél raktáron. A Farnellnél viszont van (13000Ft). Idézet: „Csak a PICkit2 starter kit sajnos nincs a chipcad-nél raktáron.” A DV164126 Low Pin Count USB Kit w/ PICkit2 készletet ajánlom helyette. Idézet: „A PICkit2 starter kit-hez használhatok 18f-es PIC-et is a hozzá járó 16f690 helyett?” A PIC18F14K50 használható. Minimálisan egy 470 nF-os kondenzátort kell berakni a 17. és a 20. láb közé. Persze, még hasznosabb, ha kvarcot és USB csatlakozót is rak be az ember itt írtam le egy ilyen átépítést. S akkor (majdnem) ugyanott vagy, mint a föntebb ajánlott LPC USB kittel, azzal akülönbségel, hogy abban RS232 illesztő és debug feltét is van. Ha különálló PICkit2-t veszel, akkor pedig a PICCOLO projektben ajánlott kapcsolások valamelyikének megépítését ajánlom. Raszteres vagy pontsávos (3-3 raszter összekötve) próbanyákon könnyen összehuzalozható.
Értem én a problémádat, de a starter kit-hez kapott "Low pin count demo board"-on egy 20 lábú foglalat van, amibe maximum a 18F13K22/18F14K22 és a 18F13K50 és 18F14K50 tehető be a 18F sorozatból. Ezekhez ráadásul - ha jól emlékszem - bele kell nyúlni magába a kártyába is, de erről icserny tud bővebbet, mert mintha ő használta volna ebben a kártyában a 18F14K50-et.
Ejha, ez tényleg jó kis kit! Ha jól látom a leírásában, adnak vele egy beültetetlen panelt és egy debugolható 18F14K50-es header-t is.
De ez a DV164126 csak egy panel, programozót nem kapok hozzá. (Vagy igen?)
Olyan jó, eddig legalább a C nyelv és a PICkit2 starter kitben biztos voltam a hozzá járó 16f690-el együtt, de most már ez sem biztos. Most akkor mit vegyek hogy tudjak valami jó DIL tokos PIC-et programozni anélkül, hogy panelt kelljen készítenem?
Ez a DV164126 oldala a Microchipnél: Bővebben: Link illetve: Bővebben: Link
Ez alapján egy beültetett és egy üres panelt kapsz, melléjük egy PICkit2 programozót, valamint egy olyan spéci változatát a 18F14K50-nek, amit lehet debugolni. Idézet: „De ez a DV164126 csak egy panel, programozót nem kapok hozzá. (Vagy igen?)” a DV164126-hoz kapsz programozót, azért ezt ajánlottam. Az önálló panel (programozó nélkül) más kódszámú: DM164127. Az nem ajánlom...
Értem. Oké, akkor ezt veszem meg a starter kit helyett. A debugolás egyébként miért olyan jó? EZEN a képen mi az a kis panel az SMD IC-vel? Az lenne a spéci 18f14K50? Ha igen, akkor mi az a DIL tokos IC a nagyobbik, beültetett panelon? Az is PIC? :hide:
Hali!
itt mindent megtudhatsz az említett termékröl. Idézet: Igen. Annak több lába van...„Az lenne a spéci 18f14K50?” Idézet: Az a normál kivitelű (20 lábas PIC).„mi az a DIL tokos IC a nagyobbik, beültetett panelon?” Idézet: „A debugolás egyébként miért olyan jó?” Többnyire megvan nélküle az ember, de ha már végképp nem tudja, hogy hová és miért baragolt el a program akkor utána lehet nézni (töréspontokat lehet a programban elhelyezni, s ott meg lehet vizsgálni a regiszterek és a memória állapotát).
Igen működik de csak B-portra megy ha A-portra akarok írni 0xFF-t akkor oda 0x7F -t ír miért?
Idézet: „ha A-portra akarok írni 0xFF-t” Hmmm! Idézet: Hat bites portra hogy akarsz 8 bitet kiírni?!„PORTA is a 6-bit wide, bidirectional port.” Idézet: „oda 0x7F -t ír” Szerintem csak 0x3F-et...
Pic16F1936-nak 8bites
#include main() { PORTA = 0; ANSELA = 0; TRISA = 0; LATA = 0xFF; while(1); //vegtelen ciklus }
Ugyanazt el kell játszani vele, mint a B port esetében, csak ANSELA stb... Egyébként ha megnéznéd az adatlapot is, mondjuk a portok leírása környékén, akkor megértenéd, hogy a minta kódrészletben mit miért írtam le.
icserny: 16F1936- ról van szó! Üdv.
Igen ezt megtettem meg is értetem mi mit csinál de még sem az jelenik meg a porton, forrás fent.
|
Bejelentkezés
Hirdetés |