Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nálam a CODE-tól bevadult a fordító.
Ha az első CODE helyére org 0x00, a második CODE helyére org 0x20 (vagy amit akarsz) került, akkor simán lefordult. A watch ablakban ettől függetlenül mindig működött az Add Symbol. Egyébként MPLAB 8.14 van nálam. Idézet: „Csak miért nem szerepel egy mintapéldában sem ?” Valószínűleg azért, mert más lábat és más UART egységet használtak. Egyébként a 0xFFFF kicsit túlzás, mert nincs is ennyi analóg vonal (pláne a 28 lábúban!), de mindegy, fő hogy működik végre.
Egy VGA kártyára tennénk RAM-hűtést a fiammal, mert úgy tűnik, hogy attól szemetel időnként, hogy a RAM nagyon felmelegszik. Egy régi P1-es bordát szétvagdostunk, és jobb híján kétoldalas ragasztóval felraktuk a chipekre a szeleteket (a vékony fajta ragasztó, nem a "húsos"). Amúgy így is majdnem "megfoghatatlanra" melegszenek ezek a kicsi bordák, szóval biztos, hogy kellenek.
Tudnátok javasolni valami jobb módszert, vagy ragasztót, esetleg olyan (élő) topicot, ahol ilyenekkel foglalkoznak? Én próbáltam keresni, de nemigen sikerült...
Nekem is szürke lett a regiszter fül, mert nem tudta lefordítani. Én is kidobtam a CODE-t, nincs értelme LINK-et használni! Csatoltam a módosított asm-ot.
Ha megnézed, akkor az egy 16bites regiszter, még akkor is, ha nincs mindegyik bit használva(2 nincs a 16-ból!). Bajt nem okoz és nem kell gondolkodni!
Azt írtam, hogy az AD kikapcsolása szerepel a példákban, csak hibásan! A példa sem működik pont e miatt! Idézet: „A Ram helyét hogyan lehet meghatározni? Jól gondolom, hogy 000h-tól 07fh-ig van?” A konkrét adatlap alapján 0-tól kezdődik a RAM, tehát CDATA 0x0 is jó kell, hogy legyen (ellentétben a PIC 16F típusokkal, ahol előre pakolják az SFR tartományt, s utána jön az általános célú RAM). Idézet: „Ha megnézed, akkor az egy 16bites regiszter, még akkor is, ha nincs mindegyik bit használva(2 nincs a 16-ból!).” Igazad van, nem okoz semmi gondot a többi bit 1-be állítása. Nem is akartam ebből vitát nyitni, csupán arra céloztam az előző hozzászólásban, hogy a 28 lábú változatban csak 10 analóg bemenet van. Idézet: „Azt írtam, hogy az AD kikapcsolása szerepel a példákban, csak hibásan! A példa sem működik pont e miatt!” Valóban rosszul írták a nevet, de nem lehet, hogy azért nem vették észre, mert véletlenül olyan lábakat használtak (RP8, RP9), ami nem analóg bemenet? S abban a konfigurációban véletlenül működött a program?
Igazad van, tényleg azok nem AD bementek! Akkor ezért nem vette észre senki az elírást!
Én azt hittem, hogy Lozsa nem változtatott semmit a példán, de ezek szerint átírta a RP-ket a saját hardveréhez, ezért bukott ki a hiba. Idézet: „Tudnátok ajánlani valami közkedvelt basic fejlesztőt PIC-hez, vagy hozzá tartotó linket?” Ha a "hozzátartozó linket" tágan értelmezzük, akkor a
megadása is elegendő. Konkrétabb linkek: XCSB struktúrált PIC BASIC Great Cow BASIC Megjegyzem: egyiket sem használtam még, s megígérem, hogy nem is fogom. Idézet: „Megjegyzem: egyiket sem használtam még, s megígérem, hogy nem is fogom.” Próbálom értelmezni más szemszögből googa-nak: Ha olyan fordítót használ egy kezdő, amit nem nagyon használnak mások, akkor bekövetkezhet, hogy nem lesz senki aki segítsen, mikor elakad. :yes: Ugyanez a helyzet a nem gyári fordítókkal is.
A PIC16F877 ese RB7, RB6 os lábát használja az ICD2-ő ugye? Arra ne tervezzek semmit ha még menet közben programozni akarom a PIC-emet?
Köcce
Hello
PIC16f628-ban az A portnak azt a 2 bitjét, amelyikre kell kötni a kvarcot, nem is lehet másra használni? Szóval nem lehet pl. kimenet vagy bemenet? Üdv.
Dehogynem, ha nincs rakotve kristaly (mert pl belso orarol megy) akkor hasznalhatod. Ez vonatkozik az FOSC-ra is (RA6 es RA7) es a TIMER1 -hez hasznalhato bemenetekre is (RB6 es RB7).
Tervezhetsz ra, csak gondoskodni kell a megflelo levalasztasrol. Sok esetben elegendo egy ellenallas oda, maskor bonyolultabb levalaszto aramkoroket vagy akar jumpereket is lehet alkalmazni. A lenyeg, hogy az ICD2-t ne erje nagy terheles azokon a vonalakon, es ne legyen tul nagy kapacitas vagy akar induktivitas ami karosna befolyasolhatna az adatfolyamot (vagy barmi modon karosithatna a programozo aramkort...).
Lehetséges az, hogy a pic16f628 B portjának az 0. bitje rossz? Mert nem működik, az odakapcsolt LED-m nem világít, és nem a LED a rossz, van előtét ellenállás is.
Üdv.
Elofordulhat, de lehet egy egyszeru szoftveres hiba az ok. En epp most huzok aludni, de ha beirod a kodot akkor legalabb azt meg tudnank nezni szoftveres hiba-e a dolog vagy esetleg mashol keresendo a bibi.
A programnak igazából nincs sok köze a gép méretéhez.
Általában az egy egységre eső elmozdulást vagy a motor lépésszámát és a menet emelkedését kell megadni a programnak.
Ha debuggolni is szeretnél, és a rá tervezett, elektronikailag helyesen illesztett áramköri részed nem befolyásolja az egész áramkör együttműködését a programoddal, akkor lehet mást is rákötni. (pl. két LED nem fog gondot okozni rajta, max. össze vissza világít debuggolás közben, de egy oda tervezett megszakítás jel igen.)
Ha csak programozni akarod, akkor egyszerűbb a helyzet, mert csak elektronikailag kell helyesen illesztened, ahogy trudnai már elmondta. Legjobb, ha nem tervezel oda semmit, ha elég a többi láb a feladatra. Szerencsére az újabb PIC-eken több programozó port is van, érdemes ezeket használni, mert van alternatíva. Nekem nem tetszett soha, hogy a Bportot "szétszakították", főleg, ha egy 8bites külső eszközt párhuzamosan akartam beolvasni. Ilyenkor lehetett összerakosgatni darabokból a bájtot és ez sebességben sokat számít. Egyéb más alkalmazásban semmi nyűgöt nem okoz.
Hello
A forráskód így néz ki, mikropascalban lett írva. Üdv.
A magasszintű programnyelvekben az a szép, hogy fogalmunk sincs, hogy mit csinál a program a háttérben.
Érdemes lenne megnézni a lefordított programot is (általában .lst kiterjesztésű), ellenőrizni kellene a LED-et is, s ha az rendben van, akkor szimulátorban is meglehetne nézni a programot. Ha már a LED-nél tartunk: azt ugye, megnézted, hogy a B0 (9. láb) be van-e kötve rendesen, vagy nem ment mellé a foglalatnak?
Na kipróbáltam a te asm forrásoddal. Azzal sem jó ((
.err fájl üres, forditás közben nincs warning, tut a progi mégis szürke az add symbol fül... Talán új projectet kéne kezdenem? Amúgy 8.10 -es MPLAB
Ebben a fejlesztői környezetben nem kell megadni a PIC konfigurációját? Mert ez a programrész csak a logikai folyamatot írja le, némi port beállítással. Szimulációban ettől még jól fog működni, de ha nincs felkonfigolva a PIC, akkor a valóságban soha.
Igen! Az MPLAB-ot teljesen meghülyíti az előző projected(fogalmam nincs miért!). Indítsd újra, dobd ki a projectet, és egy újat indíts, amibe bemásolod az asm-ot. Nekem is 8.1 van fenn.
Hát... Ez egyszerű, mint a faék. Ha ez nem fut le a 628 B portján, szerintem cseréld ki a kontrollert! ( Mintha a saját első programomat látnám viszont, csak az basicban volt. Egyébként ez a megoldás nem túl elegáns, 8-10 sorban meg lehetne írni. Pl egy táblázatban eltárolod a port növekvő értékeit, majd utána csak szép sorban elő kell szedegetni őket. )
Az mplab-ban beállítottad a config biteket?
Kiválasztottad a kontroller típusát? Mert az a kódrész nem tertelmazza ezeket az információkat. :yes:
Egyelőre még az a gond, hogy szürke marad a regiszterfül a Watch ablakban.
Amiről írsz, az majd akkor fog gondot okzni, ha beleégeti a PIC-be, és nem megy...
Biztosan icserny-nek akartál válaszolni?
Ja, hogymég bele sem volt égetve?
Akkor a teljes projektet fel kéne linkelni és akkor meg tudnánk nézni, hogy mi lehet a gond, mert, lehet, hogy az mplabbal van valami gáz.
Először lefordítottam azt az asm-ot(teljes projectet csatolt egyébként), amit Lozsa csatolt. Nekem is szürke lett a regiszter fül. Aztán hiába javítottam ki és fordítottam le, nem akart aktívvá válni.
Ekkor kidobtam a projectet, újraindítottam az MPLAB-ot és egy szűz projectbe beletettem a módosított asm-ot. Rögtön jó lett. Kerestem az eltérést a másik project között, de nem nagyon találtam. Igazából mindegy is, ha a friss project-tel jó lesz neki! |
Bejelentkezés
Hirdetés |