- ho (hour)
- nn (minutes)
- dd (date day)
- dn (date month)
- dy (date year)
Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Igen, ez jonak tunik -- de akkor tenyleg az SMD topicban flytatjuk
Sziasztok!
Pic égetésnél ez a figyelmeztetés jött elő. Nem tudom ez mire vonatkozik. Mi az ami nem jó, és mit kellene csinálni. Köszönöm!
Hello mindenki!
Szükségem lenne egy kis segítségre. Szeretnék csatlakoztatni egy PS/2-es billentyűzetet egy 16F877A-s PIC-hez. Leírások alapján ezt úgy oldottam meg, hogy a külső megszakítást vezérlő lábra kötöttem rá a billentyűzet órajelét és az adat jelet pedig a PORTA 5. lábára (RA4). Nos az még rendben is van, hogy a PIC érzékeli az órajelet, le is fut a programkód de valamiért egyszerűen nem jön semmiféle adat. :S Már legutóbb azt próbáltam meg, hogy simán csak növelem az adatot tároló regiszter értékét és elég érdekes dologra lettem figyelmes. Az ADAT regiszter értéke (ebbe szeretném tárolni az érkező kódokat) nem lesz nagyobb 4-nél amikor legalább 8-nak kéne lennie! Ha ez nem lenne elég furcsa akkor még ott van az, hogy elvileg addig nem szabadnak kiírnia semmit amíg legalább 11 bit nem érkezett meg. De ez nem így van ezek szerint. :S Megnézné nekem valaki, hogy mi lehet a gond, kérem? Tehát az órajel biztos, hogy jó mert tulajdonképpen még úgy is, hogy nincs semmi értelmes adat csak 3 pixelnyi távolságot ugrik a kijelző. Pont ennyi adat jön... Először küldi a scan code-ot utána küld egy F0-át ha felengedtek egy gombot majd utána elküldi, hogy melyik gomb volt az. http://www.beyondlogic.org/keyboard/keybrd.htm Itt a jelenlegi kódot linkelem mert hosszú. Köszönöm előre is a tippeket és a segítséget! Bye!
Nincs a HEX-edben configuracios beallitas -- azt javasolja, hogy exportald az MPLAB-bol ki a HEX-et ami tartalmazza.
(nem tudom amugy milyen HEX ez amit be akarsz programozni a PIC-edbe de ha Te irtad a forrast akkor valoszinunek tartom a config hianyzik a forrasodbol...)
Ha AT típusú billentyűzetet akarsz kezelni, ott emlékeim szerint nem csak fogadni, de adni is kell néha. Az egy kétirányú kapcsolat, mintha a billentyűnek is kellene valami inicializálás, meg a vett adatokról nyugtázások is mennek. El kellene olvasni azt az oldalt tüzetesen, esetleg még másokat is, de szerintem nem ennyire egyszerű, hogy csak várunk és összerakjuk a bejövő biteket.
Nem.Nem Én írtam. Ez egy szkóp kapcsolás lenne,124x64 es grafikus kijelzővel. Most akkor mit csináljak, mert most megállt a tudományom?
Szia,
Kontextus mentes nem jo az interrupt vezerloben, azonkivul en nem latom hol olvasod be az RA4-rol a jelet?
Pedig csupán annyiból áll alapesetben, hogy összerakjuk a biteket. Van paritásbít a végén, az ha nem stimmel, akkor lehet kérni újraküldést, lehet küldeni a ledek állapotát, ismétlési sebességet, stb., de induláshoz elég csak fogadni a biteket és összerakni a bájtot. Nekem így működik a PS2-USB átalakítóban.
Ide feltettem egy kódrészletet annakidején, ezt nézd át. Igaz C-ben van, de talán érthető így is.
Azért nem látod mert kiszedtem a tesztelés idejért.
Egyébként ott ahol most INCF ADAT,f van oda kerülne, hogy BTFSS PORTA,4 és utána, hogy BSF ADAT,0 ezután meg RRF ADAT. ---- potyo, köszi. Szerinted ha ezt lefordítom csak kicserélem a típust 16F877A-ra akkor menne? Persze még kisebb módosításokkal. Idézet: „Egyébként ott ahol most INCF ADAT,f van oda kerülne, hogy BTFSS PORTA,4 és utána, hogy BSF ADAT,0 ezután meg RRF ADAT.” Na jo, de akkor lehet elotte a C-t torolni kellene Igy ha nem azt a kodot kozlod aminek mukodnie kellene akkor eleg nehez hibat vadaszni, merthogy erre meg azt fogod valaszolni, hogy ja igen, az is "ott van" csak most nincs ott...
Bocsi. Igazad van.
Egyébként tényleg ott van. CLRC a START label után. Csak az a gond, hogy már vagy 3 változatot írtam eddig.
Szia!
A kapcsolásról, esetleg a kódról biztosan van valamiféle bővebb leírás, ahonnan letöltötted. Én a helyedben abból indulnék ki és manuálisan beállítanám a config biteket. Pl. Kezd az oszcillátorral, pl. ha 10MHz-es kristály van a PICen, akkor máris be tudod lőni az oszcillátorra vonatkozó biteket. Megnézed, hogy a watchdog használva van-e, ha igen akkor bekapcsolod.. stb. Szerintem csak egy pár bitet kellene beállítani. Esetleg ha belinkelhetnéd a kapcsolás honlapját, hátha az alapján még mások is tudnának benne segíteni, akik jobban értik, mint én.
Mennie kell. Nem használ az említett kód semmi olyasmit, ami a 16F-ben nem létezne. Picit a tömbök bonyolítják a helyzetet, de szerintem nem vészes.
Bővebben: Link
Erről lenne szó.A Pic belső oszcillátorát használja,mert nem kell hozzá kvarc. Sehol nem találok semmilyen utalást hogyan kellene beállítani.Szerintem mennie kellene, Csak én bénázok vele,vagy valamit nem vettem figyelembe.Pedig végig nyálaztam az egészet.Ha valakinek van valami ötlete azt szívesen veszem. Köszönöm!
A belső oszcit mindenképpen be kell állítani, és a többi config bitet is. E nélkül "nem kéne mennie", hogy a szavaiddal éljek. Ha nem találsz semmit, akkor legalább a belsó oszcit állítsd be, az adatlap szerint.
Sziasztok!
Van valakinek bővebb információja az XT75 GSM-GPS modulról? Látom, hogy emlegetik a leírásban a java-t és a direkt koordináta lekérdezést, de nem nagyon tudom elképzelni, hogyan lehet ezt mondjuk egy 8 bites PIC-hez kapcsolni és hogy jön ide a java? Esetleg használta már valaki a modult? Köszi és üdv.: Zoli Idézet: „A Pic belső oszcillátorát használja,mert nem kell hozzá kvarc. Sehol nem találok semmilyen utalást hogyan kellene beállítani.” Pedig biztosan ott van a gépeden! A tmpl6010.s sablon fájl szerint ehhez hasonlóan lehet megadni (a külső kristályra vonatkozó XT_PLL16 neked nyilván most nem jó):
A p30f4011.inc állományban pedig a "FOSC: Oscillator Selection Fuse" szekcióban vannak felsorolva a választható opciók. Belső oszcillátornál ezeket látom:
Ezek közül gondolom az FRC_PLL16 kell. Összegezve:
Kiindulásnak talán jó. A részleteket a dsPIC30F4011 adatlapjból kell kiókumlálni!
Helló!
Na megcsináltam az órát, az volt a baj, hogy a nyákon volt egy nagyon kicsi hiba, amit alig vettem észre. De még így sem olyan ó, mert néha hiányosak a karakterek, meg nem igazán értem, hogy aki csinálta az, hogy akarja beálllítani. Valaki nem tud egy sima, mezei órához való HEX fájlt pic16f84-hez?
Ha jól csalódom, ezt építetted meg. Van neki egy SET meg egy Increment gombja. Nem olvastad el?
Bővebben: Link A "hiányos kijelzés" beállításkor van szerintem, ilyenkor a: kiírásokkal próbálja jelezni, hogy éppen mit állít. Letölthető a forrásfájl is, át is írhatod.
Még mindíg nem sikerül úgy működnie ennek a 12F683 Timer1 counternek úgy ahogyan azt én elképzelem. Azt kéne valahogy kideríteni hogy amit én szeretnék, azt nem tudja, vagy rosszul állítom be, vagy valami egyéb nem dokumentált nyűgje van ?
A program elején 1mp -ig világít az egyik led (GPIO0), majd 1 mp ig a másik led (GPIO4). Idáig minden rendben. Majd beállítom a timer1 et counternak, és bebillentem a 3. bitet is, tudom hogy ez engedélyezi az LP oscillátort, de csak így működik a T1CKI -bemenetre kapcsolt optokapu által adott impulzusok számolása. Ezután viszont a következő led villogtatáskor már csak az első led fog világítani 1 mp -ig, a másik már nem. Gondolom azért, mert a GPIO4 et hozzárendelte az oszcillátorhoz, és bemenetnek kapcsolta. Csakhogy nekem ez így nem jó, mert nekem kell az a kimenet. Ha a t1con 3. bitjével nem kapcsolom be az LP osc- ot, akkor működik kimenetként mindkét ledem, de viszont nem számolódnak a bejövő impulzusok T1CKI -n. A megszakítási rutin kb 15Hz el fut (timer2), és megnézi hogy mennyi impulzus jött be az előző megszakítás óta, és ennek megfelelően kapcsolja be a ledeket. Már ha műköik az lp osc, és akkor csak az egyiket sajna. Már megőrjít ez a cucc lassan. Valakinek valami ötlete ?
Köszönöm a segítséget!
Beállítottam a config biteket. Remélem jól értelmeztem amit leírtál. Majd holnap programozok és megnézem működik vagy sem.
Szia!
A timer1 gate funkciójával lesz a baj. A comparator modul CMCON1 regiszterénél van egy apró megjegyzés: bit1 T1GSS: Timer1 Gate Source Select bit 1= Timer 1 Gate Source is T1G pin (pin sould be configured as digital input) 0= Timer 1 Gate Source is comparator output Szerintem állítsd ezt a bitet 0-ba... Az adatlapon nem szerepel az INTIO oszcillátor mód csak az INTOSC és az INTOSCIO. Nem tudom, mit fordít a config regiszeterbe. Neked a 0xF3C4 érték kellene. Szia
Őszintén szólva én nem kézi beállításra gondoltam, hanem úgy, ahogy a template fájlokban is láthatod (az MPLAB MPASM30 suite/support/template alkönyvtárában), írd bele a programodba azt a néhány sort, amit összegzésnek írtam! (Vagy annak módosított/kiegészített változatát, ahogy az adatlap alapján jónak látod).
Viszont a HITECH p12f683.h header file -ban van INTIO módra vonatkozó beállítás, ahogy kibogarásztam az adatlapból és a headerben levő definíciókból:
#define INTCLK 0x3FFD : INTOSC oscillator: CLKOUT function on GP4 & I/O function GP5 #define INTIO 0x3FFC: INTOSCIO oscillator: I/O function on GP4 & I/O function on GP5 Javítsatok, ha tévedek.
Szerintem nem az OSCCON-ban kéne beállítani a belső oszcit, hanem a konfig bitekkel, mert különben nem lesz I/O a két láb, amit annak szeretnél(GP4, GP5)!
Az OSCCON-ban a 0. bit legyen 0 (0 = Clock source defined by FOSC<2:0> of the Configuration Word register) A konfig pedig INTOSCIO (100 = INTOSCIO oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN). A programod többi részével jelenleg nem foglakoztam, az a következő lépés, ha ez nem oldja meg a problémát. (Mondjuk az jó szokott lenni, ha kiderül milyen PIC-ről van szó, és mi a feladata a programnak.)
Köszi a tippeket srácok megnézem mindet.
Watt: írtam hogy 12F683, de a forrásban is benne van. A program pedig még csak egy teszt, hogy sikerüljön beállítani végre a timert számolásra. Amúgy ha menni fog, akkor egy modellvasúti mozdonyba lesz beépítve, és a motor fordulatszámát fogja szabályozni. Idézet: „írtam hogy 12F683, de a forrásban is benne van.” A forrásban nincs benne. Igen írtad, onnan vadásztam ki... Ha segítséget kérsz, egyszerűbb dolgod lesz, ha a forrásban pár mondatban leírod mit szeretnél a kódtól. |
Bejelentkezés
Hirdetés |