Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Igen, de a resetre utána jónak kéne lennie.
Szerintem nem megy az oszci. Kíváncs leszek kvarcal megy-e. Ez egy képtelen történet.
Lehet ilyen progit írni (relokálható szegmensekből a linker a linker script alapján állítja össze a végső kódot), ha több asm forrást akar összelinkelni, akkor kötelező is. Persze első "hello world"-nek nem célszerű ezzel kezdeni.
Te, neked milyen muszered van, mert nekem a legkisebb mereshatar 200mA... azzal max szazad mA az amit kimutat de ott sem iszem hogy pontos lenne. Milyen mereshatarral dolgoztal?
De ha jol ertem, akkor elobb keramia resonatorral probalkozott es azzal sem ment, aztan RC-vel es azzal sem...
Jo lenne ha az MCLR-t nyomna, de ahhoz meg kellene egy soros ellenallas is az adatlap szerint mert ha kozvetlen foldre rakja akkor beragadhat a PIC-je...
Ja igen, rémlik valami az olvasmányaimból. Bevallom soha nem értettem meg teljesen a linkert, és soha nem írtam még így progit, talán nem is fogok...
Mondjuk rossz volt a rezonátor, az RC tag pedig nem helyes értékekből állt. Nem tudom, csak találgatni tudok.
Gondolom nem kell bizonygatnom nektek, hogy milyen egyszerű egy PIC-et elindítani, és erre itt van ez a helyzet. Ha nem írta volna, hogy ért az elektronikához, nem nagyon hinném el, de így csak arra tudok gondolni, hogy egy rejtett hiba szívatja.
2mA a legkisebb méréshatár. Pont lehet vele mikroampert mérni. Elvileg méri mert ha megcserélem a mérővezetékeket, akkor -2 mikroampert mér. Szerintem is
(De néha lefagy... Vicces... ) Holnap megnézést mégsem ígérem, mert rájöttem, hogy dolgom van de a héten mindenképp sort kerítek egy rendes körülmények közötti PICezésre. Majd akkor megírom, ha működik.
(Azt nem mondom, hogy totál elektronika zseni vagyok, de már raktam össze pár cuccot. Minierősítőt, torzítókat, most egy mágneses szenzort, és két theremint. Ha azt mondják emitterkövető, nem esek zavarba. A komponenseket az adatlap alapján raktam az RC tagba is. Először el is indult vele, döglassan, de utána is beragadt. Azt még a watchdog számlájára is tudnám írni, de hogy azóta mi van itt )
Közben vehetsz vagy rendelj kvarcokat. Ne egyformákat, hanem mondjuk 4, 8 és 20MHz-es tipusokat, meg két-két darab 15, 22,27 és 33pF-os kerámiakondenzátort is. A külső RC-ben valahogy nem bízok meg, bár lehet, hogy semmi alapja sincs Azért különféle kvarcokat, hogy ne egy szériából legyenek, nehogy hibásak legyenek.
Mondasz valamit, ez az RC dolog nekem is fura. Egy másik oldalon azt írták, hogy ha a földre húzod simán az OSC1 lábat, akkor is elindul RC módban. Na ezt nem próbáltam. (És nem is igazán hiszem.)
Szerzek kristályt. Ha nem más kérek a laborból. Hogy ez eddig miért nem jutott eszembe! Hülye kérdés: A laborban linuxos gépem van és windowst esélytelen rárakni. Az MPLAB linuxos változatát valaki próbálta már? Ha be tudnám lőni, akkor a laborban is tudnék kényelmesen programozni...
Köszönöm az eddigi kimerítő válaszokat, sokat segítettetek!
Köv kérdésem: Definiálok egy táblát: LCD_TABLAZAT dt "alma" majd TBLPTRU-t törlöm, LCD_TBLAZAT HIGH-t tblptrh-ba, LOW a TBLPTRL-be töltöm. Ezután ha "tblrd*+"-al léptetem és nézem watch ablakban akkor minden másodikra egy "FormFeed" van a TABLAT-ban (decimális 12) Miért?
A DT csak minden második programmemóriacímre tesz adatot, és kiegészíti egy RETLW utasítássl, tehát ugyanazt kapod, mintha ezt írnád:
Hasznájd DB-t DT helyett, akkor minden címre kerül adat.
MPLAB-nak nincs linuxos valtozata! Vannak mas fejlesztoi eszkozok, pl amit keregelhetsz: gputils (asm fordito+linker+par mas cucc), gpsim (most nem tudom a gputils tartalmazza-e, de egy pic simulator), sdcc - ingyenes C fordito, asszem nem a legjobb az optimalizaloja, de MC18-nal jobb. Van PicKit2-nek command line-os progija is - nem Microchip hivatalos, de mivel MC open source-ossa tette a kodot azt masok implementaltak linuxra es Macos-ra. Mas egetok is mennek linuxon... Van valamo PicDev vagy PicLab, keress rajuk.
Az ilyen RC helyett foldre kotomdolgokat inkabb ne csinald szerintem. Viszont az MCLR ala nem tettel meg mindig kondit - annak az lenne a szerepe, hogy lasabban eledjen fel a PIC, legyen ideje az oscillatornak feleledni. Soros ellenallas meg azert kellene, mert ha az MCLR foldet kap, akkor kepes ra, hogy "beragad" es reseten tartja a PIC-et - ez adatlapban targyalva van... (100ohm jo lenne oda, szerintem elso korben egy 100nF kapacitor talan megfelelo lehet). Amugy a muszered akkor eleg jo lehet, ha 2 miliamperes mereshatarod van es negy digites. De ha fagyogat akkor inkabb nem kerdem meg a tipusat Mindenesetre 2uA fogyasztas az nuku, ha ez igaz akkor a PIC nem mukodik, pl mert nem oszcillal az oszcillatorod.. vagy mert allandoan reseten log... A 877 melle meg ne vegyel kristalyokat velemenyem szerint, hanem helyette vegyel 16F628-at pl. es hasznald a belso oscijat... Az az a 877-es kulonben sem tul okos darab...
Üdv mindenkinek!
Van egy rosz autóriasztóból származó jó rádió modulom amit szeretnék ráakasztani egy pic re. (16f627A) A riasztóba eredetileg egy 103 kódú smd vel kapcsolódott a pic 15 ös lábára. Az a láb a kvarchoz van (úgy tudom). Hogy működhetett eredetileg? Előre is köszönöm! Idézet: „Az az a 877-es kulonben sem tul okos darab...” Azért ez így érdekesen hangzik azután, hogy 16F628-at ajánlasz...
MPLAB: igen hülyeséget írtam. Leesett nekem is...
A kondit próbáltam már az MLCR-en, pont egy 100 nanosat raktam be, de nem használt sajna. (Már meg sem lepődöm.) Nekem gyanús, hogy a rezonátor terágya volt az RC kört meg nem szeretik valamiért. 2 volt körüli érték esik az OSC1 lábra. Mint mondtam, majd a laborban tiszta lappal új alkatrészekkel megnézem, elsőnek olyan összeállításban, ahogy a nagy könyvben meg van írva. Ja a műszer tényleg jó, leszámítva, hogy lefagy. Meghogy a biztosítékolt árammérő bemenet nem működik, csak a biztosíték nélküli. (Ergo ki van égve a biztosíték. Azért ez fura egy olyan eszköztől, amit én bontottam ki a csomagolásból és már első áramméréskor se működött azon része. De hát made in China, hatalmas szórás lehet az eszközök között...)
Gondolom, úgy értette trudnai, hogy a 877-ben nincs sem belső oszcillátor, sem az MCLR lábat nem lehet inaktiválni, és generikus I/O-ra kapcsolni.
Ha ezeket meg lehetne tenni, akkor kapásból ki lehetne zárni a rezonátor/oszcillátor és a reset-áramkör hibáját. A 628-as ugyan kisebb PIC, de újabb típus, mint a 877, és ilyen szempontból "okosabb": külső oszcillátor- és resetalkatrészek nélkül is elindítható.
Igy van Szilva, velemenyem szerint ez valami visszamaradott csokeveny kompatibilitasi okokbol, hogy regebben fejlesztett rendszerek melyeket meg a mai napig gyartanak, szoval hogy ezekhez legyen utanpotlas.
Sot ha megnezitek a Microchip odalan az arakat, a 628-as az $1.29, a 877 meg $3.71... persze lehet mondani, hogy ja, de nagyobb, de nezd meg akkor a 887-est, az ugyanakkora, sot tobb IO-ja van, 8MHz-es belso oraja es kepes sajat program memoriat firkalni tehat bootloader kepes, es csak $1.69... Ezert irtam, hogy kristaly meg mindenfele extra helyett inkabb cseret javasolnek
Szia Thowra,
Az a minimum, hogy ha mar nem ismered fel az alkatreszeket, akkor legalabb egy olyan fenykepet mellekelsz, amin az alkatreszek felismerheto modon rajta vannak es udvariasan megkerded mi a fene lehet az a 103 feliratu valami? A masik, hogy pl egy doksi nem artana, ha mas nem owners manual, de lehet a googliba beirkalod annak a riasztonak a tipusat elobb utobb rakaadsz valami infora - es termeszetesen ezt az infot is mellekeled mert nem szeretjuk ha masok helyett kell a googliban kotorasznunk... Bocsanat ha kemeny volt egy kicsit, csak gondold at mikor kerdezel valamit mi az amit abbol ki lehet bogaraszni. Pl hogy nezne ki ha ilyet kerdezenek: Van nekem egy hordozhato DVD lejatszom, nem mukodik, van rajta egy LCD mege egy fura narancssarga csatlakozoja, hogyan hajtsam meg PIC-kel? Erre a kerdesre szerinted hanyan tudnak a valaszt?
Sziasztok!
Ez egy egyLED-es villogó akar lenni. Mi a hiba a programba?
Mi ez a sok begin-end benne? Lehet, hogy csak én vagyok hülye, de ilyet még nem láttam asm kódban...
Eloszor is a BEGIN..END -eket szedd mar ki onnan, az MPASM nem ismer ilyesmit, END kell a program legeslegvegere, de nem cimkekent (ne a sor legelejere tedd, hanem mint egy utasitast...)
Nem vagy hulye cimkekent eszi meg a fordito. A legelso END utan mar tok mindegy miket irkalt, azokat figyelmen kivul hagyja a fordito, ezert nem panaszkodott neki valoszinuleg hogy a BEGIN cimke ujra lett definialva...
Azt tudom, hogy az első END a program vége a fordítónak, csak mondom nehogy valami új környezet legyen, amit még nem láttam...
Mindenesetre (függetlenül attól, hogy elvileg nem lesz interrupt-ja, és a mostani problémához nincs köze) egy ISR-t annyival lerendezni, hogy RETFIE, elég nagy fejtörést okozhat a jövőben.
Üdv!
A kis smd ről nem tudtam képet csinálni mert a fényképezőm kölcsönbe van. Írtam, hogy szerintem smd kondi (fekete, 103 felirattal, ellenállása nincs). A google nem volt a barátom Ha sikerül a távirányítót illeszteni egy progival (ha megnyomom akkor egy változó 0 ról 1 re vált) akkor nem kell a gyári progi, írok bele egyet, legalább ismerkedek a pic el Az viszont tényleg az én hibám, hogy elnéztem a lábat, nem a 15 ös re hanem a 6. ra megy a jel. Oszcillátor nincs rajta, gondolom belsővel ment. A probléma a vevő illesztése, van erre ötleted ?
Szia Thowra,
Kondik barnak szoktak lenni felirat nelkul (sajnos), a feketek pedig ellenallasok. Erteket menyus mar megirta... Ha jol ertem a taviranyito vevo modulja kuld valami jelet mikor a gombot megnyomod? Oscilloscope-al azert nezd meg mi az a jel, lehet csak egy szignal, amivel pl a pic-ed felebredhet alvo allapotbol es valamit csinalhat. Pl masik labon a kozponti zarat kinyithatja. Ez pedig lehet megint egyszeru jel, de vannak autok amibel CAN busszal dolgoznak, ha az olyan akkor egyenlore nem javasolnam, hogy bele melyedj. Mit szeretnel amugy csinalni ebbol?
MPLABC18as kérdések:
- mi a szabályos módja ha egy integer felső bájtjába akarok irni? (az alsó bájthoz ne nyúljon) - User Guide 23.oldalon irja hogy ha két bájtot szorzok, az eredmény nem int lesz hanem 1 bájt. Elég illogikus de legyen, mert állitólag az -Oi- kapcsolóval be lehet állitani normálisra , 16 bites eredményre. Csak épp nem működik Továbbmegyek: int * int is int, sajnos. Ha 32bites eredményt akarok, 32*32es szorzás kell. Sok idő. Tudtok megoldást?
Szia sszasza,
Probaltad mar castolni? Igy elso kiserletre ezt az eredmenyt kaptam:
Jol mukodik, de nem tudom, hogy a kodmeret kielegito-e? |
Bejelentkezés
Hirdetés |