Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   510 / 1320
(#) trudnai válasza watt hozzászólására (») Jún 22, 2009 /
 
Igen, ez jonak tunik -- de akkor tenyleg az SMD topicban flytatjuk
(#) denon888 hozzászólása Jún 22, 2009 /
 
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!

skope.jpg
    
(#) potyo válasza denon888 hozzászólására (») Jún 22, 2009 / 1
 
Hm. nem egyértelmű a figyelmeztetés?
(#) spepe hozzászólása Jún 22, 2009 /
 
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!

main2.asm
    
(#) denon888 válasza potyo hozzászólására (») Jún 22, 2009 /
 
Nem egészen az.
(#) trudnai válasza denon888 hozzászólására (») Jún 22, 2009 /
 
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...)
(#) szilva válasza spepe hozzászólására (») Jún 22, 2009 /
 
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.
(#) denon888 válasza trudnai hozzászólására (») Jún 22, 2009 /
 
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?
(#) trudnai válasza spepe hozzászólására (») Jún 22, 2009 /
 
Szia,

Kontextus mentes nem jo az interrupt vezerloben, azonkivul en nem latom hol olvasod be az RA4-rol a jelet?
(#) potyo válasza szilva hozzászólására (») Jún 22, 2009 /
 
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.
(#) potyo válasza spepe hozzászólására (») Jún 22, 2009 /
 
Ide feltettem egy kódrészletet annakidején, ezt nézd át. Igaz C-ben van, de talán érthető így is.
(#) spepe válasza trudnai hozzászólására (») Jún 22, 2009 /
 
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.
(#) trudnai válasza spepe hozzászólására (») Jún 22, 2009 /
 
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...
(#) spepe válasza trudnai hozzászólására (») Jún 22, 2009 /
 
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.
(#) norby1 válasza denon888 hozzászólására (») Jún 22, 2009 /
 
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.
(#) potyo válasza spepe hozzászólására (») Jún 22, 2009 /
 
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.
(#) denon888 válasza norby1 hozzászólására (») Jún 22, 2009 /
 
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!
(#) watt válasza denon888 hozzászólására (») Jún 22, 2009 /
 
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.
(#) Csaplar hozzászólása Jún 22, 2009 /
 
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
(#) icserny válasza denon888 hozzászólására (») Jún 22, 2009 /
 
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ó):
  1. ;..............................................................................
  2. ;Configuration bits:
  3. ;..............................................................................
  4.  
  5.         config __FOSC, CSW_FSCM_OFF & XT_PLL16    ;Turn off clock switching and
  6.                                             ;fail-safe clock monitoring and
  7.                                             ;use the External Clock as the
  8.                                             ;system clock
  9.  
  10.         config __FWDT, WDT_OFF              ;Turn off Watchdog Timer
  11.  
  12.         config __FBORPOR, PBOR_ON & BORV_27 & PWRT_16 & MCLR_EN
  13.                                             ;Set Brown-out Reset voltage and
  14.                                             ;and set Power-up Timer to 16msecs
  15.                                            
  16.         config __FGS, CODE_PROT_OFF         ;Set Code Protection Off for the
  17.                                             ;General Segment


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:

  1. .equiv FRC_PLL4, 0xFFF1
  2.          .equiv FRC_PLL8, 0xFFFA
  3.          .equiv FRC_PLL16, 0xFFF3
  4.          .equiv FRC, 0xFDFF


Ezek közül gondolom az FRC_PLL16 kell.

Összegezve:

  1. config __FOSC, CSW_FSCM_OFF & FRC_PLL16  
  2.         config __FWDT, WDT_OFF  
  3.         config __FBORPOR, PBOR_OFF & PWRT_16 & MCLR_EN
  4.         config __FGS, CODE_PROT_OFF

Kiindulásnak talán jó.

A részleteket a dsPIC30F4011 adatlapjból kell kiókumlálni!
(#) mate_x hozzászólása Jún 22, 2009 /
 
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?
(#) icserny válasza mate_x hozzászólására (») Jún 22, 2009 /
 
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:

  1. ho  (hour)
  2. nn  (minutes)
  3. dd  (date day)
  4. dn  (date month)
  5. dy  (date year)


kiírásokkal próbálja jelezni, hogy éppen mit állít.

Letölthető a forrásfájl is, át is írhatod.


(#) lidi válasza icserny hozzászólására (») Jún 22, 2009 /
 
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 ?

proba.c
    
(#) denon888 válasza icserny hozzászólására (») Jún 22, 2009 /
 
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.

névtelen.jpg
    
(#) Hp41C válasza lidi hozzászólására (») Jún 22, 2009 / 1
 
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
(#) icserny válasza denon888 hozzászólására (») Jún 22, 2009 /
 
Ő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).
(#) kisszee válasza Hp41C hozzászólására (») Jún 22, 2009 / 1
 
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.
(#) watt válasza lidi hozzászólására (») Jún 23, 2009 / 1
 
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.)
(#) lidi válasza watt hozzászólására (») Jún 23, 2009 /
 
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.
(#) watt válasza lidi hozzászólására (») Jún 23, 2009 /
 
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.
Következő: »»   510 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem