Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Egy gyakran alkalmazott megoldás: alaphelyzetben a bemenet egy ellenállással (pl. 5-10 k) tápfeszre (a PIC VDD lábja) fel van húzva. Aktiváláskor pedig egy nyomógomb ezt a pontot földre (a PIC VSS lába) húzza.
Érdemes még annyit megtenni, hogy a nyomógomb és a felhúzó ellenállás közös pontját nem közvetlenül, hanem egy védőellenálláson (300 Ohm - 1 k közötti érték) kötöd a PIC bemenetére. Így nem fordulhat elő, hogy a PIC lábát véletlenül kimenetnek állítod, a nyomógombbal meg rövidrezárod. Ezek után már csak a nyomógomb kontaktusának pergésével kell szembenézni, de van rá megoldás...
Annyit szeretnék hozzátenni, hogy a gombhoz tartozó láb vezhérlőprogramját természetesen meg kell írni, beileszteni a jelenlegi program vezérlőjele helyére, illetve lehet még egy gombot tenni, amivel váltani lehet az üzemmódot, ha erre szükség van. Menni fog?
Akkor ha jól értem.
Pl. A 16f628 RA4 es lábát egy 5-10K ellenállással rá kötöm a tápra. Ugyan ezt a lábat kapcsolóval testre kötöm. ÉS a kapcsoló és a felhúzó ellenállás között kötöm be a RA4es lábat egy 300ohm körüli ellenállással.
Ezen az oldalon nézd meg pl. a 2. és a 4. ábrán SW1 bekötését!
Sziasztok,
Kérdéssel fordulnék hozzátok. Szeretnék csinálni (csináltatni) egy 8x10-es ledmátrixot. 28 pines PIC-et szeretnék hozzá , csak azt nem tudom hogy milyet válasszak, túl sok feladata nem lenne csak a ledeket villogtatni.
Szia!
Jó választás a 28 lábú tok, sokféle típust lehet felhasználni az áramkör átalakítása nélkül: 16F886 - 8Kszó, 18F2420 - 16kbyte, 18F2520 - 32kbyte, 16F2620 - 64kbyte. Az áramkörről: A 12V-ot kapcsoló tranzisztorok meghajtása nem lesz így jó. Mindegyikhez ajánlanék egy npn tranzisztort: Az npn tranzisztor emittere a földre, a bázisa egy ellenálláson keresztül a pic kimenetére, a kollektora egy ellenálláson a pnp tranzisztor bázisára kapcsolódik. A pnp bázisa és emittere közé is tennék egy ellenállást a biztos lezárás elérésére.
Ezek alapján akkor nálam is érdemes lenne ilyenekre alakítani a nyomógombokat?
Véletlenül se történhessen gond?
Ha tőlem kérded, a 470Kohm helyett inkább 1K-t vagy 10K-t tennék és egy 100n-s kodit is a test felé. Az alap elképzelés egyébként jó.
A LED-es fényjátékkal kapcoslatban nézz felaz oldalamra, vagy egy elég komlex kapcsolás, amiből meríthetsz, esetleg utánépíted...
Köszönöm a tippet és a javaslatot,
Már nézem is az oldalad.
Kedves Watt! Elismerő szavaid után engedd meg, hogy néhány szóban kifejtsem gondolataimat az utolsó érintett hozzászólásodról. Lehet, hogy tényleg a nehéz felfogású ovodások, vagy talán a számítástechka alapjaival most ismerkedők közé, stb.... tartozom, de voltam olyan bátor, hogy Tőletetek - akiket egyéként nagyra tartok - kérdezni merjek.
Válaszod elolvasása után magam is elgondolkodtam, miként sikerülhetett egyedül bekapcsolni a számítógépet és használni a böngészőt. Mindamellet, hogy nyilván igazad van, arra kérlek, csak akkor válaszolj kérdésre, ha úgyérzed tudsz segíteni. Ez úgytudom olyan fórum, amely önkéntes alapon működik, a segítők jószándéka motiválja a válaszokat. Ha ezzel nem rendelkezel adott témában és pillanatban akkor kérlek ne okozz semelyik kérdésfeltevőnek kínos pillanatokat! Adott kérdésre a válaszod pedig legyen örökös titok! De mi is volt a baj azzal, amit kérdeztem? Aztmondod alapvető tudással 1/2 óra alatt, akár segítség nékül is meg lehet oldani. Na rendben, ha már ílyen egyszerű, akkor 5 mondatban is el lehet mondani. De nem lehetett. Helyette barbár módjára kikelsz magadból. Remélem a kérdés egyszerűsége miatt kezdőktől is sok választ kapok. Bármilyen fura, a 16F-18F sorozatbeli eszközzel kapásból tudok projectet csinálni, hiba nélkül lefordul. Mégcsak nem is kell állítanom semmit a Built Optionsban. De én P24 el akarok küzdeni. Ezzel mintha megálllna az élet! Amit elsmerek súlyos tévedésmenek, hogy nem bírtam leszokni az .asm ről és .s használni. De azthiszem ezzel sem vagyok kint a vízből. Icserny nagyon lelkesen elmagyarázta, - ami szerinted már a kezdzők kisujjában van egyébként is - hogy miként kell állítani a Built Options For Project -et. Aztán itt megint én érzem furán magam, mert: hiába állítom be a Directories lapon az aktuális projecthez az elérési útvonalakat, (C:\Program Files\Microchip\MPLAB ASM30 Suite\Support\inc) és (C:\Program Files\Microchip\MPLAB ASM30 Suite\Support\gld) a fordítás megkezdése után kifagy az MPLAB, annak ellennére, hogy a **.s file rendben ott van a source files könyvtárban. Ezután a project bezárását sem engedi meg az MPLAB. A problémára minden ötletet várok a kezdő programozótól a profiig bezárólag. Watt reakcióját is várom legalább a humán részre bármilyen formában, de ha soha többet nem is kapok tőle választ akkor tudnia kell, hogy szakmailag és eddigi önzetlen munkássága miatt továbbra is emelem kalapom előtte.
Szia!
A projekt elérési útvonalában ne legyen semmi ékezetes betű sem, erre az MPLAB allergiás szokott lenni (töröl könyvtár). Valamint érdemes lehet a legújabb MPLAB környezetet feltelepíteni (v 8.60).
Azt hiszem csak a régebbi MPLAB verziók voltak erre allergiásak. De éppen ebben a "töröl" könyvtárban próbáltam ki egy p16 és egy p18 as processzora írt programot projektből fordítani ami hibátlanul ment.
Csinálj a C: gyökérben egy könyvtárat (pl. C:/PIC24), s a projekteknek vagy projekt-csoportoknak azon belül egy könyvtárat. Például: C:/PIC24/proba. Ahogy már előttem elmondták, szóköz és ékezet ne legyen az elérési útban!
Megjegyzés: technikai okokból itt nem tudok backlash-írni. Értsd tehát jól a fentieket! A "humánpolitikai" kérdéshez: A kérdezőknek nemcsak jogai, hanem kötelességei is vannak, s be kell tartani a fórum írott és íratlan szabályait. Nem illik visszaélni a válaszolók vagy fórum olvasók türelmével. Nem illik itt feltenni olyan kérdéseket, amelyek kilógnak a téma profiljából (mert pl. a PIC kezdő, Elektronika kezdő vagy Számítástehnika kezdő témakörbe valók), vagy minimális tájékozódással (Google, adatlap, programleírás stb.) a kérdező maga is utánanézhetne. Az élet apró örömeihez tartozik, hogy mindezekre Watt figyelmeztetett, nem pedig a moderátor...
Ki fogom próbálni, remélem tényleg az elérési ut hossza okozta problémát. Mellesleg, ha működik marhára nem fogom tudni milyért sikerült fordítani ugyanebben a könyvtárban más projekteket.
Most már úgylátszik végleg rajtam marad a kezdő, ovodás bélyeg. Nem akarom fokozni a dolgot, de valaki azért azt már elárulhatná, hogy melyik volt az a pont valamely kérdésemben, amelyben kiderült mindez. Én igyekeztem mindig úgy fogalmazni, hogy olyan kérdést tegyek fel, melyből látszik, hogy mindent elkövettem a megoldás érdekében, és bármennyire is hihetetlen adatlapok és a google tanulmányozásával kezdem az ismeretlen tanulmányozását. Most belefutottam ebbe a dologba, de mindjárt el vagyok küldve a sunyiba. Pedig az MPLAB leírásokat is elolvastam becsületesen. Még icsrny is cinikusan válaszol "Értsd tehát jól a fentieket", mintha tényleg ezidáig az derült volna ki rólam, hogy nem bírom felfogni amit írtok.
Szia! Azért sikerült, mert az egész modulokból áll, és az egyik elfogadja az ékezetes útvonalat, a másik nem. Ha szisztematikusan nem használsz ékezetet az elérési útban, sok problémától szabadítod meg magad. Ez az egész már sokszor le lett írva ebben a fórumban . Az elérési út hossza kötött, most kapásból nem tudom hány karakter.
No ez egy konkrét válasz, máris világos milyért működik különbözőképpen az MPLAB. Már alig várom mikor tudom kipróbálni.
Lehet többször is volt minderről szó, ez az én hibám, hogy nem olvastam végig a topicot, de szerintem ez nem keverendő össze a szakmai felkészültség hiányával vagy a lustasággal sem. Ha tutira tudom, hogy ott van a 837 oldal valamelyikén a megoldás, akkor komolyan fontolóra veszem, hogy átolvasom, - de legyek megkövezve - lehet, hogy nem teszem....
Nem kell végigolvasni, azért van kereső! Keresési kulcsszónak pedig elég megadni azt, hogy "elérési".
Sziasztok!
PIC es GSM modul kozott szeretnek soros porton kommunikaciot megvalositani. Jelenleg ott tartok hogy a soros porton tudok kuldeni adatot a modemnek pl. Hivas inditasa. Jelenleg a program ugy mukodik ha jon valami a bemenetre akkor interrupt-tal megall es beolvassa a ReadUSART utasitassal az erkezett adatot. Az a problemam hogy a ReadUSART frame error hibat dob es egyszeruen nem tudom miert. Remelem tud valaki segiteni nekem. itt van a kod, kép .. Annyi meg ha a PC-vel kotom ossze a PIC-et akkor teljesen jol megerkezik ra minden. Elore is koszi a segitseget, David
Szia!
Nézd meg ezt a topikot, itt kitárgyaltuk a kérdést. Nem lehet várni a soros adás és vétel rutinjaiban, mert lekési a program a veendő karaktereket. A kezeteséi hiba lehet hibás formátum beállításából fakadó hiba is. Idézet: „Nem lehet várni a soros adás és vétel rutinjaiban, mert lekési a program a veendő karaktereket” Hol van varas? En nem latok a kodomban varakozast. Koszi David
Szia!
Azt kellene ismerni (nyomkövetéssel megállapítani), hogy miként van megírva a putrsUSART és a getcUSART eljárás. A Delay10KTCYx(10) biztosan programozott várakozás...
Tisztázni kellene, hogy melyik C változatról van szó, mert nálam a hlpC18Lib.chm szerint a putsUSART() függvény a szoftveresen emulált soros port kezelésére szolgál, a PIC18F Peripheral Library Help Document.chm szerint pedig a hardveres USART kezelésére (ez az újabb).
A honlapomon találsz mintaprogramokat UART kezelésre (interruptos RX és TX, mindkettő gyűrűs buffereléssel). A lényeg a picula_usart.c állományban van. Idézet: A forráskódja ott van az MCC18 telepítési könyvtárában. Kiollóztam a relváns részeket. „Azt kellene ismerni (nyomkövetéssel megállapítani), hogy miként van megírva a putrsUSART és a getcUSART eljárás.”
Testre sokkal kissebb ellenálással lehet stabilan lehúzni egy bemenetet. A kondi is hatásosabb. Én mindig így használom, eszembe sem jutna másképp...
Sokkal kisebb ellenállással lehúzni ? Ez mit akar jelenteni ? A kapcsoló jobban vezet a test felé ? Vagy hogy érted ezt ?
Talán a TTL logikai áramkörök korából öröklődött, ahol a felhúzás lényegesen kisebb árammal történt, mint a lehúzás (-1.6 mA, ill. 40 uA).
A logika szempontjából meg olyan mindegy...
Még arra tudok gondolni esetleg, hogy a szint billenés (logikai magas/alcsony) esetleg nem fél tápfesznél van ?
Idézet: Hát persze, hogy nem! Kell egy "tiltott sávnak" lennie, hogy az L szintet a H szinttől üzembiztosan meg lehessen különböztetni. A TTL áramköröknél van némi aszimmetria: alacsony szint 0 - 0.8V között, a magas szint 2.2-5V között lehet. A közbenső tartomány "tiltott", a két logikai szint között gyorsan kell átváltani. „a szint billenés (logikai magas/alcsony) esetleg nem fél tápfesznél van ?” A PIC adatlap szerint a Schmitt triggeres CMOS bemenetek elég szimmetrikusnak tűnnek: L szint 0- 0.2*Vdd közöt, H szint Vdd egységekben: 0.8 - 1.0 közötti lehet.
Persze, az tiszta volt hogy van tiltott sáv, csak arra gondoltam hogy esetleg nem szimmetrikus.
|
Bejelentkezés
Hirdetés |