Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Tényleg, pedig már mindent állítgattam. (És erre nem is gondoltam.)
![]() ![]()
Sziasztok!
Elakadtam. Írtam egy 4 bites ldc vezérlést PIC16F628ra, plusz a ccp1 modullal hajtok meg egy led-et. Ja és egy gomb 10k-val felhúzva, az rb0-án (int bemeneten). A következő a kód. Müködni csak úgy müködik, hogy kiírja amit akarok. Majd a gomb megszakítást hoz létre. Ezt kéne számolnia, és kijeleznie a 2 sorban. És közben nővelni a fényerőt. Az a baj vele, hogy olyan 2-3 gombnyomásig érzékel, és növeli a ccprl1-et. Miért? Szeretném megérteni, hogy hol ronthattam el. Előre is köszi!
A megszakítási rutinod elején, miután a regisztereket mentetted, a BANKSEL makróval ki kellene választani a megfelelőt az intreg-ed számára.
A sok goto utasítást én macerásnak látom, lehet egyszerűbben is. De mondjuk ettől még működhet jól.
Szia!
Állítsd be az MpLab programban az MpLab SIM -et szimulátornak és kövesd végig a programodat. Egyébként a hibát az okozza, hogy a movf valami a valami értéke szerint beállítja a Z jelzőbitet a STATUS regiszterben, de nem mozgatja az adatot (ill a valami -ből a valami -be mozgatja), ugyanis az f rendeltetés a default. A megszakítás kiszolgáló rutin mentési része emiatt nem működik rendesen. Érdemes rászokni a rendeltetés megadására (w ill. f), ekkor látszik mit is szeretnénk..
Köszönöm a segítségeteket! Sikerült megoldani!
Az elsődleges baj az volt, hogy a delay rosszul volt beállítva, mert elvileg csak úgy működik rendesen a beépített függvény, hogyha az órajel és a delay értéke megegyezik. RS232 Hibalehetőségek Persze én CCS fordítót használok, lehet máshol máshogy működik. A másik, ami gond lehetett, az az, hogy én folyamatosan logikai 1 -en tartottam az adást (nem akartam bajlódni az adóval így folyamatosan egy "szekvenciát" adott,) és mintha ez bezavart volna (gondolom a 250 ms-os kikapcsolás miatt) Szóval mégegyszer köszönöm! Üdv, smithwebster
Sziasztok. Egy olyan problémával találkoztam amit nem tudok megoldani. Egy órát szeretnék építeni PIC 16F819 processzorral. Sikerült az áramkört felépíteni és a programot is beolvasni, (nem én írtam) de az a probléma hogy gyorsabban jár mint kellene. kb 1 perc letelik nála 40 sec alatt. egy 16Mhz quartz van az áramkörben. Tud valaki segíteni, hol keressem a hibát? Akik megépítették a kommentjeikből az derül ki hogy nem volt ilyen gondjuk. (Külföldi oldal és elég halott már). Ha kell a kapcsolást és a forrásfájlt csatolom.
Köszönöm előre is.
Szia!
Mérd meg pontosabban az eltérést, töltsd fel a kapcsolási rakzot és a programot...
Üdv !
Egy IRF540 fet-et szeretnék meghajtani PWM-el 3v3-al. A fet 12V-ot kapcsolgatna és vagy 10A kellene tudnom levenni róla. Gondolom csak simán a PIC kimenetét nem köthetem a FET-re mert nem bírja kihajtani. A kérdés, ha a pic hajtana egy CMOS kaput és az hajtaná a FET-et vagy 12V-al az úgy működhet?
Vannak külön fet meghajtó Ic-k, de a CMOS kapus megoldás is működik.
Értem, kösz, bár ha van ilyen ic, az mégjobb.
Én ami ic-t találtam az mind nagyfesz meghajtók 600V körüli. Van valami kisfesz típus is? Ilyennel még nem találkoztam. Vagy nekem elég egy lowside driver is?
Igen, de ennek a Vih 9.5V minmum. Adatlap 3. oldal táblázat első sor.
Esetleg ez: Bővebben: Link Úgyis 2 csatornára van szükségem.
Ha már PIC témában tetted fel a kérdést, érdemes körülnézni a Microchip kínálatában is. Bővebben: Link FET Drivereknél keresd.
Például a TC4627 alkalmas lehet a feladatra, ráadásul Chipcadéknél akciósan beszerezhető PDIP tokban.
Én épp a TC1427-est néztem ki 12V-om van a FET is azt kapcsolgatja, holnap megkérdezem, hogy van-e nekik aztán próba.
Köszönöm a segítséget!
Ez nagyon durva! Lehet, hogy 10 vagy 12 MHz-es kvarc kellene hozzá (az időeltérésed alapján gyorsabb az órajele kb.50 %-al), de ezt csak a kapcsolási rajz ( ha jó a felírt adat! ), vagy korrekt mérés alapján lehetne megmondani! Mindenesetre nem valószínű, hogy hibás rajzot és programot feltesz valaki a netre ( de előfordulhat!), úgyhogy ne add fel a "csüggedést"
![]() Steve
Hello.
Az lenne a kérdésem, hogy másnak is csinál olyat a Hi-tech C compiler MPLAB-ba épülő C fordító, hogy ha túl hosszú az interrupt rutin, akkor fordításközbe, "a program szabálytalan müveletet hajtott végre" felirat fogad, és a fordítás nem készül el? ez a kód: (PIC16F887) MPLAB v8.53 interrupt void isr(void){ if (TMR1IF){ TMR1IF = 0; } } Ezt még elfogadja, viszont bővítem ezzel: interrupt void isr(void){ if (TMR1IF){ TMR1IF = 0; s_position += direction; Servo_Control(50 + (s_position*5)); if ((s_position == 41) || (s_position == 0)) direction *= (-1); } } És már kapom is a hibaüzenetet. Valakinek ötlete? Sőt igazából ha már csak a feltétel, vagy bármi komolyabb bele kerül már ezt csinálja. Amúgy a kódot lefutattam megszakítás nélkül is, és gyönyörűen működött.
Van egy MPLAB PM3 programozóm, nemrég került hozzám de táp nélkül, épitettem hozzá egy megfelelő tápot. Müködött is gyönyörűen, feltettem a legujabb MPLAB-ot, feltettem az usb drivert hozzá, majd elindittam, csatlakoztam a programozóra de kiirta hogy az OS régi, frissiteni akarja, nyomtam egy okét neki de a frissités valahogy nem jött össze neki mert a végén a programozó kiirja hogy nincs vagy érvénytelen az oprendszer rajta. Tehát most igy teljesen használhatatlan, és nemtudom hogy keltsem életre, azota probáltam többször OSt felrakni rá de nem sikerül. Esetleg ötletek? volt már valakinek hasonló tapasztalata? A nyomtató USB kábelját használtam hozzá, de gondolom ez nem igazán lényeges.
Innen való a kapcsolás és a program.Bővebben: Link Csinálok majd pontos mérést is a nap folyamán.
Én a fórumban található HEX fájlt töltöttem be, mert a C-t nem sikerült. Ez az Bővebben: Link
Szia!
A forrás szerint jók az időzítések a 16MHz -es quartz -hoz. Nézd meg a pic oszcillátorának bekötését, esetleg egy másik 16.000 MHz-es quartz segíthet. Milyen kondenzátor van a quartz két kivezetésénél? Van -e a pc táp és föld lába között 100nF kerámia kondenzátor (amilyen közel csak lehet)?
Kipróbáltam már több quartz-ot is, de nem változott. 15pF-os kondik vannak a quarzt-nál. A pic tápra nem tettem kondit, de kipróbálom
Nem segített a tápkondi. Lemértem 1 perc alatt 95 másodpercet számol.
Sziasztok!
A segítségeteket kérném! Olyan gondom van, hogy egy hőmérséklet mérést valósítottam meg egy PIC16F678A-val egy PT1000-es PTC elem segítségével. A gond a következő: a kijelzőn a mért érték +-20 ugrál random össze vissza, a forráskóddal nincs baj, valahonnan zavart szed össze (szkóppal kimértem) de nem tudom honnan mikor feszstab előtt után van egy 100nF kerámia a pic lábán van közvetlen a tápnál egy 100nF meg a biztonság kedvéért az A/D bemenetre is tettem egyet de mindenezek ellenére nagyon ugrál random. előre is köszi a segítséget!
Szia!
Milyen kijelzőn jelenik meg a mért érték (LED-ek, multiplexelt, stb)? A nyomtatás hogyan vezeti a föld vezetéket? (A csillagpont a pic föld lába kellene legyen, a digitális rész föld árama ne menjen át az analóg rész földvezetékein.) Az A/D bemenetére is tegyél kerámia kondenzátort 10 .. 100nF. Alkalmazhatsz átlagolást a zavar kiszűrésére. Hogy az osztással ne legyen gond, kettő valamely hatványának megfelelő mérési eredményt adj össze, az átlagot jelenítsd meg. Nem 16F876A -ról lenne szó?
Szia!
Bocsi elírtam 16f873A. egy saját magam által kreált kijelzőn, 3db hétszegmens kijelző multiplexelve de az egy külön IC vezérli soros pumpálással küldöm az adatot neki. Egy föld kör van ami végig megy a panelon, az analóg rész úgy van megoldva hogy az 5V rámegy egy LM317Z feszstabra ami 2V-ra van belőve és az egy megy efszosztóra aminek az egyik tagja a PT1000. próbáltam az átlagolást de akkor szanaszéllyel mászott a mért érték (exponenciálisan változott a hőmérséklettel a hiba)
Szia!
Tegyél bele 10.000 MHz -es quartz -ot...
Szia!
Esetleg próbáld meg, hogy hídba kötöd a Pt100-et, majd egy híderősítővel a PIC által értékelhető tartományba hozod a kimeneti feszültséget. Üdv!
Szia!
20.000 MHz-es quartz van rajta. Így feszosztóban is értékelhető tartományba esik a mérés. 2,048V referencia van megadva neki a mérési tartomány pedig 700mV-tól 1500mV van. Az előbb sikerült kimérni hogy egy 5MHz-es fűrészjel csücsül a mérési ponton 8mV-os amplitúdóval. Üdv!
5 MHz - 200uS --- Ez az utasítás végrehajtási idő 20MHz -es órajel esetén...
Üdv.
Ismét egy kezdő kérdés: MLAB -ban hogyan lehet source files-ként C forráskódú programot hozzáadni a projekthez. Csak asm-t enged, a C-t csak other-ként. ![]() |
Bejelentkezés
Hirdetés |