Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ne marjátok egymást, azzal nem jutunk előbbre...
A 877 adatlapjában azt olvastam a 14.4-14.5 pontokban, hogy a power on reset érdekében azt az ott látható áramköri részletet ajánlott beépíteni. Ezt mindenképpen meg kellene próbálni. A másik, hogy tényleg kellene tiszta asm-ben írni egy ledvillogtatót, és meggyőződni róla, hogy a PIC működik rendesen.
Oké, hagyjuk. Csak annyit még, hogy nem az a baj, hogy nem értesz hozzá, ez fontos!
A forrásfájlt miért nem csatolod úgy, mint a hex-et? Vagy abban is csak ennyi van? A programban kell konfigolni, mert nem tudhatod, hogy az MPLAB mit visz ki, ha egyáltalán kivisz valamit, ha nincs a programban! Én még nem próbáltam MPLAB-ban beállított konfigot kivinni, mindig a forrásban van a config.
Csak ennyi van benne. A Picsimulator assembly szerkesztőjében írtam. Ott a config biteket menüben kell beállítani, úgy kerülnek be a hexbe.
(Értelemszerűen a címkék előtt nincs - jel csak érzékeltetni akartam, hogy azok címkék. Ha code tagok közé raktam akkor valahogy egybefolyt az egész és olvashatatlan lett. Így se túl szép de legalább nem egy sorba van az egész.)
Már megint bénázom, de nekem más van azokban a pontokban. Van másik adatlap is?
Én ezt szoktam nézni: itt Ezt végignéztem és itt nem találtam ilyen áramköri részt. Annyit találtam, hogy lehet állítani kodból a POR működését.
Igazad van, Te a 877 doksiját nézted, én a 877A-ét. Abban többet írnak a power-on-reset dolgokról. Most el is vesztettem a fonalat, hogy Neked sima, vagy A-s 877-ed van-e.
Emberibb nyelvre átírva:
(Ez már lefordult MPASMWIN alatt nekem HEX-é.. )
Nem bírtam ki, ezért összedobtam egy LED villogtatót. 4..20MHz-es kvarcal megy. Ha RC oszcit akarsz, akkor át kell írnod a konfigben a "_HS_OSC"-t "_RC_OSC"-ra. Ha ez nem megy(főleg kvarccal!), akkor biztosan rossz a PIC.
RC esetén néhány TIME rutint kikommentezhetsz, de úgy is lassú lesz!
Nekem is gyanús, de ha bejutok a laborba, akkor teszek vele ott egy próbát. Ott biztos lesz rendes kvarc.
Azért köszönöm a segítséget, majd csak jutok valahová...
Watt, a hex miatt ne bantsd, azt en kertem, hogy lassam mi kerul a chipre.
Foxpaw, ez az amit KIOLVASTAL a chip-bol programozas utan? Ebben a WDT be van kapcsolva, azaz kb 18ms-enkent a chip-ed resetalodik. Nyilvan a szimulatorod nem, vagy nem jol szimulalja a WDT-t, avagy a WDT-t a programozod loki neki oda (amit nem hiszek, hisz mindket HEX-ben ott volt a WDT bekapcsolva) Amugy resetet kellene mar ebben az esetben vizsgalni, hogy egyaltalan bekovetkezik-e, es hogy mi okozta. CCSC-t nem ismerem, biztos van valami fuggveny amivel le lehet ezt kerdezni, nem tudom. Elobb javitsd ki a WDT-t, aztan probald megkeresni, hogy hol lehet ezeket az infokat kiolvasni, hogyan lehet megtudni keletkezett-e reset vagy sem, es ha igen vilagits ki egy led-et (egy masikat). Ha a led eg, akkor az a bizonyos reset bekovetkezett es akkor ki kell deriteni miert...
Ó, hogyaza...
A Pic Simulator IDE nem veszi figyelembe a hexben a config biteket. (Ha kívülről töltöd be, akkor sem), hanem a saját menüjében beállítottakkal dolgozik. Akkor az MPLAB ezek szerint nem nyúl bele a hex bitjeibe, magyarán hiába kapcsolgattam én a biteket, ha a watchdog be volt kapcsolva végig... (Adott figyelmeztetést, de én azt hittem, hogy elég kiexportálni újra a memória tartalmát és akkor felülírja. Ezek szerint mégsem.) Akkor várhattam én az indulást, ha az őrkutya folyton ugat... Lehet, hogy megvan a megoldás?
A PIC Simulator IDE-ről inkább javaslom, hogy szokj le, és használd helyette az MPLAB SIM-et. Meg kell szokni, de sokkal jobban használható. És minden ott van egyben, nem kell összevissza hozni-vinni a fájlokat.
Ha MPLAB-al fordítasz, akkor ne Export-al vidd ki a hex fájlt, hanem használd az asm fájl mellett létrejött fájlt. Az tartalmaz minden konfig bitet úgy, ahogy azt beállítottad. Vagy nem erre vonatkozik a kiexportálás?
Lefordítottam (_RC_OSC-al), betöltöttem, semmi.
Azóta már biztos vagyok benne, hogy mégis valami elektronika malőr van az egész mögött. Ha bekötöm a multiméterem árammérőnek és bekapcsolom a cuccot, akkor 2 mikroampert vesz fel az egész. Valami hülyeség van a 7805-el?!? Lehet, hogy hülye vagyok, de csak ilyen ipari méretű 7805 volt itthon és azt használom, lehet, hogy az a baja? (5 voltot pedig kiadja, le van kondizva előtte utána + pic lábainál) Mindegy. Holnap reggel bemegyek a laborba és ott steril körülmények között ki fogom próbálni, mert biztos, hogy valami elektronika gáz van. Van kölcsönbe egy másik PIC-em és azzzal sem megy. 2 PIC már csak nem lehet rossz. (Engem már a multiméter se szeret. Vadiúj, de néha lefagy. Akkor kikapcs-bekapcs és mér tovább...) Azért köszi, legalább látom, hogy milyen fordítói paraméterek vannak. jól fog még jönni. Idézet: „Azaz 5V-ról járatva nem is elvárható, hogy 3.5V-nál nagyobb jeleket komparálni tudj.” Köszönöm szépen, biztos ez a gond. Erre nem számítottam...
Kedves foxpaw,
Mi a helyzet a WDT-vel? Betetted mar a config fuse-okat a forrasodba? Addig azt hiszem nem erdemes valaszolni sem ameddig legalabb vissza nem jelzel, hogy igen, benne van, igy nez ki a forras, itt a hex amit kiolvastam ha le akarod ellenorizni a configot ami a pic-en van... Fogalmunk sincs mit muvelsz, hol tartasz, csak ossze-vissza kapkodsz, igy nem fogsz elolrebb jutni. Meg annyit hozza: Kerlek jelezz vissza minden javaslatra, hogy mikor kiprobaltad mi lett az eredmenye. Pl Watt programjat kiprobaltad?!
Az egész, a 7805-tel vesz fel 2uA-t? Az már csak azért sem lehet, mert a 7805 saját árama 4-5mA szokott lenni.
Másrészt mi van a watt által tegnap este betett tesztprogival? Az működik/nem működik?
Sziasztok
Egy pic18f452-es chippel és hozzá való demópanellel ismerkedem, és lennének keérdéseim. Először is hogyan lehet kiszámítani a késleltetést? pl: ebben van 20 Mhz kvarc, és mondjuk loop-al szeretnék 100us-t váratni, akkor ezt hogyan lehet kiszámolni, hogy mennyiről kell visszaszámlálnia? Nyilván függ tőle, hogy a loop hány ciklusban megy le, tehát ha pl: 255-nél nagyobb lenne és 2 változós loop van akkor már a képlet is módosul h jól sejtem.
Az RB1-re tetted a LED-et, katóddal test felé és egy soros ellenállás is van közte sorba(pl. 470ohm...1K)?
Ki kéne gyúljon a bekapcsolás után.
A legtöbb utasítás végrehajtása 200ns. Az ugróutasítások 400ns-ig tartanak, a BTFSC és BTFSS pedig 400 vagy 600ns-ig az eredménytől függően. Ezeket összeadod, és kiszámolod, hogy mennyire kell állítani a változót, hogy annyi ideig tartson az egész, ameddig szeretnéd.
szilva, trudnai! Ha jól értettem foxpaw az én progimat fordította le és próbálta ki.
Egyébként nekem itt az asztalon villog az az egy LED azóta is. (egyébként van néhány dolog, ami nem teljesen kerek a porogramban, látszik, hogy csak összecsaptam. Persze ettől még működik, csak gázos.. )
Igen, a tiedet próbáltam ki, ezért a te kommentedre válaszoltam. jól kellett bekötve lennie, de megnéztem multival is, a lábon 0 v volt.
Szilva: igen engem is zavarba ejt a 2 microamper "áramfelvétel" most vagy a multi mutat hülyeséget, vagy valami nagy(?) elektronikai probléma van. Utóbbira gyanakszom, de nem tudom mi okozhatja. Holnap labortáp, szkóp és rendes kristály birtokában fogom laborban megnézni, ott biztos nem lehet probléma.... Remélem.
potyo válaszát kiegészítve, a 200ns úgy jön ki, hogy az egyszerű utasítások egy gépi ciklus alatt zajlódnak le, ami 4 órajel alatt történik meg. Tehát 20MHz az 50ns, ami szorozva 4-el 200ns lesz. A többi utasítás több gépi ciklus alatt hajtódik végre. Erről részletes adatok vannak az adatlapban az utasításoknál.
Már nagyon kíváncsi vagyok mi lehet a baj!
Erre azt mondja, hogy: Idézet: „Error - section 'RES_V' can not fit the absolute section. Section 'RES_V' start=0x00000000, length=0x00000044” mi lehet a baj?
Én is...
Bent a labornál van egy-két ember akik szoktak PICezni, majd ők életre keltik, ha nekem nem sikerül... Azért köszi a segítséget. Sokat tanultam máris...
Legközelebb a hozzászólásos ablakban a kódos rész kezdeténél ilyet illessz be, ha Assembly kódot írsz:
code=asm
Ezt MPLAB-ban írod? Egyrészt a CODE nem kell oda, másrészt ha csak ennyit írsz, az nem lesz elég. Nézz fel az oldalamra, van néhány 18F-es konfigurációs példa, ami segíthet egy program felépítését megérteni.
Van egy furanak tuno 5letem: probald ki mit lep ha azt a 100µF ndit lecsereled egy joval kisebbre, pl egy 0.33µF-re... Lehet a tapod valami lassan all fel vagy a fene tudja...
Az lehet a probléma, hogy a 0x00-ra definált kódszegmensed túl nagy. A "Main"-nek egy másik, sima "code" területre kellene kerülnie (ami egy relokálható kódszegmens lesz). Valahogy így:
|
Bejelentkezés
Hirdetés |