Fórum témák
» Több friss téma |
..erdekes, nem tudok hozzafuzni a hozzaszolasomhoz :-O
Tehat itt kint mar nem irtam hozza semmit csak 1621-hez, de az i2c-t hasznal, nem 1wire-t. Viszont tovabbra is ugy emlekszem kell neki egy init squence, aminek resze a reset is. Merget azert nem vennek ra
Sziasztok!
Azt szeretném kérdezni, hogy lesz attól valami baja a PIC-nek, ha másodpercenként kb 20-szor reseteli a WDT? Ez egy segédáramkőr lenne, ami mátrixban olvas be gombokat, majd vár a lekérdezésre. Ha nem történik meg a lekérdezés, a WDT leresetelné, és újra beolvasná a gombokat. Ha van lekérdezés, az törli a WDT-t, és a ciklus elejére küldi.
Nem lesz baja tőle.
Köszönöm.
Segítséget szeretnék kérni!
A PIC18F14K22-esben sajnos nincs LVD. Viszont szükségem lenne rá, hogy a tápfesz csökkenése kiváltson egy megszakítást, hogy tudjak adatot menteni. Arra gondoltam, hogy egy ellenállást sorba kötök egy diódával, amit a negatívra kötök. Így lesz egy stabil 0,6V-om, amid az A/D-vel vizsgálni tudok. Eddig működik is a dolog, tehát ha csökken a tápfesz, emelkedő értéket olvasok le a bemenetről. A kérdésem az lenne, hogy tud-e olyasmit ez a PIC, hogy hardverből figyeli egy analóg jel változását, és megszakítást vált ki rá? Válaszotokat előre is köszönöm.
Analog komparátor egységgel meg lehet oldani.
Egy picit bővebben, ha kérhetném!
Az A/D átalakítót már sokszor használtam, de a komparátort még soha. Ehhez teljesen sügér vagyok.
Van a PIC-ben is egy komparátor ehhez raksz egy külső vagy belső referenciát bár ez nem tudom, hogy a feszültség változására mennyire mászik el. És a 0,6V-ot CxyINx- kötöd és ezt a referenciával össze fogja hasonlítani a komparátor, ha nagyobb mint a referencia a komparátor kimenete 0, ha kisebb akkor 1 és ezt (hogy mikor 0 és 1) a CxPOL-al tudod beállítani.
És lehet rá IOC-ot konfigurálni és ha változás történik akkor beugrik a megszakításba és onnan tudod, hogy menteni kell. Nem biztos, hogy Hp41C erre gondolt, de szerintem valami ilyesmire.
A komparátor modul egyik komparátorát engedélyezed, a CINx+ és CINx- lábakat analógra állítod, a CINx+ lábra kötöd az emlegetett dióda anódját, a CINx- -ra egy ellenállásosztó leágazását. A kompatárot kimenete egy COUTx biten olvasható. Ha a komparátor megszakítást engedélyezed, a szint átlépésekor megszakítás kérés keletkezik.
A típustól függ, hogy melyik komparátor és milyen lábak használhatók. Az ellenállás osztó helyett a belső referencia (VREF modul) is felhasználható. A hozzászólás módosítva: Jún 9, 2016
Amit lentebb leírtak az mind szép és jó, de mit kezdesz 0,6V-al? az "L" jelű PIC-ek is jó esetben 1.8V körölig működnek . Az elgondolás jó, de kell egy biztonsági kondi a PIC tápjára amit szintén diódával leválasztasz. Ezenkívül meg még egyéb megoldások is léteznek ezen elven, nem kell használni semmilyen perifériát, elég ha egy dióda előtt figyeled a tápot és alacsony szint, vagy ha fordítva kell egy tranzisztorral magas szint esetén ad jelet egy int lábnak, a dióda mögött pedig ugyanúgy egy kondi ami pufferel amig ment a PIC.
Köszönöm mindenkinek a segítséget.
Remélem, így már megoldom.
Sziasztok!
Adatmentéssel kapcsolatos kérdésem lenne. Honnan lehet azt megtudni, hogy egy PIC-nek mennyi idő kell 1 byte adat EEPROM-ba írásához. Ugyanis az adatlapon nem találom. Kissé furcsállom azt, hogy egy 16MHz-n üzemelő PIC-nek, ami 80usec-enként lekérdezi a tápfeszt, és 4V-ra csökkenés esetén indítja a mentést, 50msec nem elég 75 byte mentésére.
Az adatlapból. Nemtudom milyen típusról van szó, a kép a 18F2550 -éről készült.
Szent szalmazsák!
Mitől ilyen lassú ez? Egyébként még egyszer átnéztem az adatlapot, (18F14K22) de ilyen táblázatot nem találtam. Köszönöm.
Oké!
Nyertél. Én az EEPROM-al foglalkozó fejezetben kerestem. Számomra az tűnt logikusnak, nem az elektromos paraméterek. Mégegyszer köszönöm.
Ott is van ha utána számolsz. Azt mondtad, hogy 50 ms alatt kb 15 byte, az 3,333 ms/byte.
Sziasztok!
Újabb problémám akadt. 64 bites Linux-ra feltelepítettem a legújabb MPLAB X-et. Több PIC-el is próbáltam projectet nyitni. Minden fordítási kísérlet kudarc. Állandóan azt írja, nem találja az adott PIC inkclude file-ét. Azaz ezt a sort dobja ki elsőnek hibára: INCLUDE <P18F14K22.INC> Folytatásként minden olyan sort kidob, ami a PIC perifériáira vonatkozik. Holott ha megnyitom a Configuration Bits ablakot, abban benne van minden, ami kell. Tehát a PIC-et ezek szerint mégis beazonosítja. Hol lehet a hiba?
Na igen.
Én így jártam az LG PLC-vel. Az Unitronics-nál mindenre van kész megoldás. Így persze lehátaztam, amikor az LG nem tudott alapból linearizálást. Meg kellett írnom rá. Ezért is választottam az asm.-et. Mivel mindent nekem kell létrehozni, nem ér meglepetés, ha valami nincs.
Sziasztok!
Van valakinek tippje arra, hogy az MPLAB X fordító miért nem fogadja el PIC12-es estén az az értékmegadási formát, amit PIC18-nál? Pedig ez az macro csak a fordítót érinti, nem az adott PIC-et.
A gond ott lehet, ahol meghívod. Mi a makró első paramétere?
Az '365' helyett elég a .365 kifejezés. AZ aposztrófok között egy karaktert vár, hosszabb string esetén idézőjel közé kell tenni, ha jól emlékezem. Ebben a formában nem numerikus értéket adsz meg. Van a decimális értékekre is ilyen aposztrófos forma, de azt soha nem használtam.
Köszönöm!
Így valóban működik, de közben rájöttem, hogy hol rontottam el. Kimaradt a D a '365' elől. Viszont biztos, hogy áttérek a te javaslatodra. Egyszerűbb.
Sziasztok!
Van valakinek arra valamilyen elképzelése, hogy mi válthat ki a PIC-ben olyan szintű resetet, hogy a RAM tartalom is törlődik? Én eddig úgy tudtam, hogy a RAM-ok csak áramkimaradástól tudnak törlődni. Az pedig jelen esetben elég valószínűtlen, mert a tápfesz csökkenése egy mentési folyamatot indít el, ami viszont nem következik be ilyenkor. A válaszokat előre is köszönöm.
Lehet, hogy erős elektromágneses zavar keletkezik a közelében, esetleg olyan mértékű és sebességű a tápfesz. változás, hogy nem tud a kontroller reagálni.
Nem lehet egy sima programeltévedésról szó?
|
Bejelentkezés
Hirdetés |