Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Mi is a pickwik? Én most egy 24-est bújok.
Hát nem véletlenül jöttek tőle a jótanácsok. Már be is raktam könyvjelzőbe. Köszi, és persze icserny-nek méginkább
Van valakinek ötlete, hogy mit ronthattam el, vagy mi hiányzik az elképzeléseimből, ami miatt külső felhúzó-ellenállást "kényszerültem" alkalmazni egy áramkörben (amúgy nyomógomb-figyeléshez), legalábbis ideiglenesen, amíg rá nem jövünk a hiba okára?
A csatolt képen látható, hogy mit ír a weak pull-up, azaz felhúzó-ellenállásokra az adatlap. Alapesetben mindegyik felhúzó be van kapcsolva a WPU regiszterben, és birizgálni kell a /GPPU bitet is a megfelelő, ott látható módon. Ez utóbbit is beállítottam helyesen. Az A/D modult is letiltottam, tehát a bemenetek digitális I/O típusúak. Az általam felhasználni kívánt, pl. GP4-es jelzésű láb bemenetnek volt konfigurálva a programban, bár amúgy is reset után alapból bemenet. Belső oszcillátort alkalmazok, tehát a Note 4-es pontját is kizárnám.
Üdvözlök mindenkit. Egy samsung hűtő elektronikáját javitottam./relét kellet cserélni/ Van benne egy PIC16f877a,gondoltam,ha már kint van,lemásol a programját.De sajnos kiolvasáskor csak 0-at ir ki.Kérdésem az lenne,hogyha el van látva kiolvasás elleni védelemmel,azt kilehet e valahogy kapcsolni,hogy ki lehessen olvasni. Előre köszönöm :szepi003
Idézet: „Belső oszcillátort alkalmazok” Feltételezem, hogy a konfigurációban FOSC=100 (INTOSCIO) szerepel. Digitális I/O-hoz az ADC-n kívül a komparátort is le kell tiltani, bár ez csak a GP0..GP2 lábakat érinti. Van azonban még egy dolog, ami az adatlapból sem egyértelmű, a CMCON1<1> = T1GSS bit szerepe. A komparátor konfigurációs regisztere ezzel a bittel alaphelyzetben a GP4/T1G lábat rendeli Timer1 kapuzásához. Nem lehet, hogy ez zavar be? Idézet: „hogyha el van látva kiolvasás elleni védelemmel, azt kilehet e valahogy kapcsolni, hogy ki lehessen olvasni?” Szerinted hívhatnák kódvédelemnek, ha ki lehetne kapcsolni? Tudtommal csak a program kitörlése árán lehet kikapcsolni.
Köszönöm az észrevételeket! Majd igyekszem figyelembe venni. A nótának még természetesen nincs vége, hiszen a mutatók, indirekció, táblakezelés és egyebek még csak eztán jönnek.
A branch utasítások futólag már szerepelnek a feltételvizsgálatok elején, de a részletes leírásukkal egyelőre nem volt türelmem bíbelődni.
Ma picit szórakoztam, kipróbáltam mit bir szegény 16F887. 50MHz -en simán megy. Soros porton tudok vele kommunikálni, ledeket kapcsolgatni
Vajon mennyi lehet a rekord PIC overclock ? Idézet: „Van benne egy PIC16f877a,gondoltam,ha már kint van,lemásol a programját.De sajnos kiolvasáskor csak 0-at ir ki.Kérdésem az lenne,hogyha el van látva kiolvasás elleni védelemmel,azt kilehet e valahogy kapcsolni,hogy ki lehessen olvasni.” Hogyne lehetne kiolvasni? Nincs olyan dolog amit ne lehetne feltorni. Csupan egy precizios sik koszoru kell hozza meg egy elektro mikroszkop: Bővebben: Link A kerdes, hogy ezekutan ha ezzel (vagy mas) modszerrel kiolvasod a chip tartalmat hogyan elemzed a kodot. Szamoldd ki mekkora munka vissza fejteni valamit es hogy vajon megeri-e a befektetes vagy inkabb egyszerubb uj kodot kesziteni.
Üdv!
Eddig egy PIC16F877-est használtam de most vettem egy új PIC18F4620-as piccet. De valamiért a CCS fórdító nem fórdít rá. ezt a hibaüzenetet irja ki: Clean: Done. Executing: "C:\Program files\Picc\CCSC.exe" +FH "proba_c.c" +DF +LN +T +A +M +Z +Y=9 +EA *** Error 24 "C:\Program Files\PICC\devices\18F4620.h" Line 2(9,19): Unknown device type 1 Errors, 0 Warnings. Halting build on first failure as requested. BUILD FAILED: Sun Sep 13 10:16:33 2009 Tud valaki segíteni? a Header file-t beinkludóltam.
Köszönöm a válaszodat!
Igen, feltételezésed jó volt, valóban INTOSCIO van konfigurálva, mivel csak ebben a módban él az, hogy a GP4 és GP5 általános célú bemenetként legyen használható. A komparátor modul is teljesen ki van gyomlálva, le van tiltva, ki- és bemenetei le vannak választva a kivezetésekről szoftverben. A T1GSS tippednek most utánanéztem, sajnos nem jött be. :no: Nem is értem, pedig ott az a felhúzó a rajzon... vajon miért nem lehet aktiválni?
Ellenőrizd, hogy az MPLAB-ben a kiválasztott típus azonos-e a forrásban szerepló PIC-kel!
16F863 ra készitetem egy kódot pár honapja, nekem sem sikerült bekapcsolni a belső felhúzokat , inkább beraktam egy ellenálást.
Már az elején beállítottam. De valamiért nem megy. Kipróbáltam más típusokra is, átírtam az include-filet és új device-ot is beállítottam, de csak a 16F877-re hajlandó lefordítani
Nahát, milyen szerencse, hogy itt meg lehet osztani a személyes tapasztalatokat; köszi a választ, akkor lehet, hogy nem is próbálkozok vele tovább.
Ez lesz a probléma. Köszönöm a segítséget! Ez sok mindent megmagyaráz
Mivel ráértem, a dugdosós próbapanelem is szabad, meg kíváncsi is voltam, ezért kipróbáltam. Nekem működik a felhúzó. Itt a kód, amivel próbáltam:
ICD2 szerint 0x3-as revíziójú a chip. Műszerrel mérve 197uA áram folyik a lábtól a GND felé.
Köszi, hogy megnézted, nemsokára összevetem az én kódommal és kielemzem, mi lehetett az ok.
Köszönöm a válaszodat.Gondoltam,hogy annyi okos ember olvassa ezt a fórumot,hogy hátha valaki kitalált erre is megoldást.Még egyszer köszi mindenkinek szepi003
Hello mindenki!
Ezt a kérdés igazából egy bizonyos valakinek szeretném feltenni csak azért írom ide mert hátha mást is érdekelne a dolog. Szóval, a kérdésem watt-nak írom. Bocsi, hogy ezzel zargatlak csak azt szeretném megkérdezni, hogy a te általad készített progiba, amivel 18F-es PIC-eket lehet programozni, van e lehetőség arra, hogy másik bementet válasszak az LPT port-on? Azért kérdezem mert van egy kábelem amit eredetileg AVR-hez készítettem és azon a 11-es bemenet van használva. Semmi gond ha nincs rá lehetőség és nem is azért írom, hogy kérjem, hogy tedd bele mert ha kell átforrasztom a kábelt csak gondoltam megkérdezem. Köszi a választ előre is! Bye!
Nincs lehetőség változtatni, sajnos forrasztanod kell.
Üdv mindekinek!
Lehet-e valahogy PIC-ből (pl. PIC18F4550) 1 db "hardveres pontosságú", 0,1 - 2 s hosszúságú impulzust kihozni? A hardveres pontosságon azt értem, hogy órajel felfutástól adott számú órajel-periódus tartamú, s órajel felfutásig tartó impulzusról van szó, melybe sem interrupt latency, sem egyéb nem szól bele. Különösen az nem, hogy az időzítés alapjául szolgáló másodlagos oszcillátor periódusát melyik fázisban sikerült elkapni az indító utasításnak. Jól értem a leírásokból, hogy pl. az Output Compare azonnal inicializálja a kimenetet, de az pusztán szerencse dolga, hogy ehhez képest pl. a SOSC-ra kötött timer mikor inkrementálódik először?
Szia icserny,
Tobbszor atolvastam a kerdesed, de nem vagyok bennek biztos teljesen megertettem mire gondolsz? Tehat van egy impulzus, amelyik 0.1s - 2.0s -ig terjedhet? Milyen felbontasban es milyen lepesben? Csak adott orajel uteme lehet ez? PWM gondolom valamiert nem johet szoba? Gondolom periodus regiszter sem? Mert ha jol ertem akkor inditas elott mar tudod, hogy pl pontosan 63 orajelnyi ido utan a kiadott jelnek alacsonnya kell valnia? De ha igen akkor mi az a masodlagos oszcillator? Amugy lehet interrupt latency-vel is szamolni -- ha tudod az mennyi, akkor a felfuto el elott pontosan annyit varsz... (felteve hogy a lefuto el mindig garantaltan ennel hosszabb ido mulva kell bekovetkezzen). Nyilvan tight looppal is lehetne okoskodni -- de mivel nem teljesen latom mi a feladat igy otletem sincs hogyan. Avagy hardveresen egy AND kapuval? Na jo, csak tapogatozom a sotetben
Nekem sem volt világos, hogy milyen jelet szeretne előállítani, de azt hittem, csak én nem értem.
Tehát akkor jó lenne, ha pontosabban tudnánk, hogy mi a feladat. PWM modullal lehet órajelciklusnyi pontossággal tetszőleges szélességű impulzust előállítani, de itt csak az impulzus szélessége lesz a pontos, a kezdete már nem garantálható.
Kezdem előlről: adatgyűjtési időről lenne szó (a régebben már emlegetett impulzusszámláló kapuzná).
A másodlagos oszcillátor: a Timer1 bemenetére köthető 32 kHz-es oszcillátor. Azért gondoltam erre, mert a 12 MHz-es Fcy jelből 16 bites számlálókkal nehezen jönne össze a kívánt időtartam. A felbontás nem túl érdekes, 0.1 s-os vagy 0.05s lépésekben bőven elég. A "reprodukálhatóság" a fontos, hogy mondjuk egy 0.2 s mindig ugyanannyi legyen az egymás után végzett adatgyűjtéseknél. Régen (Intel 8085-ös időkben) ezt úgy oldottam meg, hogy a mérést inditó parancs bebillentett egy R-S tárolót (előjegyezve, hogy gyűjtés lesz). Ennek a Q jele meg a szabadonfutó órajel felfutó éle ÉS kapcsolatban billentett egy újabb R-S tárolót, ami a számlálót ténylegesen kapuzta. Idézet: „Amugy lehet interrupt latency-vel is szamolni” Ezt szeretném kihagyni, mert közben lesz más feladata is a vezérlőnek, ami szintén generálhat interruptokat. Idézet: „PWM modullal lehet órajelciklusnyi pontossággal tetszőleges szélességű impulzust előállítani, de itt csak az impulzus szélessége lesz a pontos, a kezdete már nem garantálható.” Nekem csak a szélessége kell, hogy pontos legyen. De PWM-mel nem látok lehetőséget ilyen széles impulzus előállítására. PIC24 adatlapokban most találtam olyan Output Compare üzemmódot, hogy "Delayed one shot". Valami ilyesmi kell nekem...
Sziasztok.
Nemrég láttam egy programot amivel pic-es áramköröket lehetett leszimulálni a bele égetendő programjukkal együtt. Mi a proginak a neve és honnan tudnám letölteni??
Anno a wikipedian elkezdtem szerkeszteni a PIC-es anyagot, a fejlesztoi kornyezetnel talalsz par linket szimulatorokrol:
Bővebben: Link |
Bejelentkezés
Hirdetés |