Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   279 / 1210
(#) n_yálastrubadúr válasza n_yálastrubadúr hozzászólására (») Júl 9, 2012 /
 
A bocsánat a step intoval csináltam. A tmr0 az miért nem resetel le ha leresetelem a debug-ot? Valamikor nem is számol.
(#) Hp41C válasza Pepebá hozzászólására (») Júl 9, 2012 /
 
Megadnád mi jön?
(#) Pepebá válasza Hp41C hozzászólására (») Júl 9, 2012 /
 
Hali!
Ezek az értékek jönnek, közbe rájöttem hogy egyszerűbb eszközzel kellene próbálkoznom (ez biztos valami extra kódolással van)
Majd keresek valami más eszközt.
Idézet:
„13413424812813413413413413424812813413413413400000000000
13424812813413413413413424812813413413413413424812813413413413400000000000
13424812813413413413413424812813413413413413424812813413413413400000000000
13424812813413413413413424812813413413413413424812813413413413400000000000
13424812813413413413413424812813413413413413424812813413413413400000000000”

Üdv.
(#) kissi válasza n_yálastrubadúr hozzászólására (») Júl 9, 2012 /
 
Szia!
A RESET-nél a PIC-nél nullázódik a TMR ( adatlap!, TMR regiszter POR, BOR, RESET értékekre nézz rá!) ?
A számolás az osztástól függ , nem ez a problémád ( ha pl. 256-ot állítottál, akkor igen ritkán fog számolni kézi léptetésnél ! )?!

Steve
(#) n_yálastrubadúr válasza kissi hozzászólására (») Júl 9, 2012 /
 
Nem. Egyszerűen ha az option_reg-et átugratom, akkor el sem indul a tmr0 a szimulátorban. De egy érdekes kérdésem lenne. Ha intelligens megszakításban az rb0, mondjuk felfutó élre állítom, akkor ha én a megszakításban elvégzem a dolgom és a jelem még mindig 1 akkor visszalép újra a megszakításba?
(#) Zsora válasza n_yálastrubadúr hozzászólására (») Júl 9, 2012 /
 
Ha a megszakításkezelő rutinban nem törlöd a megszakítási állapotjelző bitet, akkor a rutinból való kilépés után újra belép abba. Mégcsak az sem kell hozzá, hogy a jeled még mindig magas legyen. Ha viszont törölted az állapotjelződ, és a jel még mindíg magas, akkor nem lesz újabb megszakítás.
(#) kissi válasza n_yálastrubadúr hozzászólására (») Júl 9, 2012 /
 
Ha élt figyelsz, akkor a szint nem számít ! A többit leírta Zsora kolléga!

Idézet:
„Nem. Egyszerűen ha az option_reg-et átugratom, akkor el sem indul a tmr0 a szimulátorban.”


Két kérdésem lenne:
1. Milyen processzorról beszélünk most?
2. Megnézted, amit az előbb írtam ( pl. mi az OPTION_REG RESET utáni állapota és az milyen léptetési sebességet jelent ) ?

Steve
(#) n_yálastrubadúr válasza kissi hozzászólására (») Júl 9, 2012 /
 
Megnéztem,de én az inicalizálásnál beállítom előosztás nélkülire. Ezzel nincsen gond. Ami érdekelne, hogy capture módban jön az 1 bit a tmr1 leméri azt elmentem egy segédváltozóba, aztán jön a 2. bit azt ismét elmentem. És ha mondjuk van 32 bitem mindet külön segédregiszterbe mentem? Mert ez egy kicsit furának tűnik.
(#) trudnai válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Idézet:
„Ha intelligens megszakításban az rb0, mondjuk felfutó élre állítom, akkor ha én a megszakításban elvégzem a dolgom és a jelem még mindig 1 akkor visszalép újra a megszakításba?”


Rovid valasz: Ha mindent jol csinalsz a megszakitasban, akkor nem, hisz ez csak a feluto elre generalja a megszakitast...

Azonban: Ha ez egy nyomogomb, vagy mechanikus jelfogo / erintkezo, akkor elkepzelheto, hogy a perges meg nem csendesedett le mikor kilepsz a megszakitasbol, es igy a perges miatt ujabb felfuto eled lesz. Pl egy szamlalo akar tobb szazat is lephet mire a nyomogombod magahoz ter... Magyaran azt mindenkeppen le kell kezelned...
(#) kissi válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Miért tűnik furának? Ha 32 időpontra van szükséged, akkor 32-szer kell menteni ( vagy már eleve számolsz, ha van időd és reagálsz!) .
Remélem jól értettem, a "jön az 1 bit" az egy esemény bekövetkeztét jelzi Neked ?!

Steve
(#) n_yálastrubadúr válasza trudnai hozzászólására (») Júl 10, 2012 /
 
Nem gomb adja, hanem az adó oldalon egy 16F716 egy 433Mhz-es modulon keresztül. A vevő oldalon egy 16F887 és a párja az adónak. De ez a gond megoldódott, ismét a megszakítás rutinban volt egy fatális hiba. Most átjönnek a bitek, egyelőre nyolc. A start kóddal van a bajom, mert a bitminta az amit látok a vevő oldalon, csak csúszkál. Nincsen a sebesség az rf modulok felett, de a hatótáv szerintem ezekhez az eszközökhöz képest elégtelen, kb 3-4 méter. Azután nemcsak bizonytalan, hanem teljes a zavar. Van egy router és 2 gép a szobában,lehet ezek zavarják be? Vagy a kód a hibás? Egyébként ha ugyanezzel a modul párossal dolgoznék, vagy akármelyik 433Mhz-es modullal, hogyan lehetne egymás zavarása nélkül alkalmazni őket? Ezekkel a párosokkal a chipcad-ben beszerzett adó rt14 és a vevő rr3-as típusokkal, aztán alkalmasak-e arra, hogy egy 24 bitben kommunikáljanak, lehetőleg olyan gyorsan, hogy a lassúság ne lehessen az irányítás fogyatéka, aztán ne szakadozzon meg lehetőleg és a hatótáv minnél nagyobb legyen.
(#) vilmosd válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Csak ugy halkan megkerdem, hogy Te a soros vonal TX-et viszed ra az adora? Nem nagyon jo otlet. Manchester kódolást lenne celszerubb alkalmazni, vagy FM TX/RX parost. A manchester kódolás celszeru minden ilyen jellegu atvitelnel, mert nincs DC komponense. A soros vonali jelalak meghulyiti a vevot, es nem lesz soha normalis jelalakod, csak a 0x55 es 0xAA atvitel eseten.
(#) aroxol hozzászólása Júl 10, 2012 /
 
Sziasztok!


Lenne valaki olyan jo hogy ezt a folyamatot leröviditi? Az ismétlésekböl több (összesen 30x) van csak nem másoltam be. Müködik rendesen csak hülyén néz ki. Ha lehet kommentel, szeretnék ebböl is tanulni.
(#) Hp41C válasza aroxol hozzászólására (») Júl 10, 2012 /
 
Pontosan melyiket?
(#) aroxol válasza Hp41C hozzászólására (») Júl 10, 2012 /
 
Pedig bemásoltam.

BTFSS IN1
GOTO KI
CALL TIMER_0MP
BTFSS IN1
GOTO KI
BCF LED
CALL TIMER_1MP
CLRWDT
BTFSC IN1
BSF LED
BTFSS IN1
GOTO KI
CALL TIMER_0MP
BTFSS IN1
GOTO KI
BCF LED
CALL TIMER_1MP
CLRWDT
BTFSC IN1
BSF LED
BTFSS IN1
GOTO KI
CALL TIMER_0MP
BTFSS IN1
GOTO KI
BCF LED
CALL TIMER_1MP
CLRWDT
BTFSC IN1
BSF LED
RETURN
(#) n_yálastrubadúr válasza vilmosd hozzászólására (») Júl 10, 2012 /
 
Nem a Tx lábat használat, csak egy szimpla i/o port-ot. Nem egészen ide kapcsolódik ezért csak a topik címet adom: Infra távirányítás. Köszi!
(#) n_yálastrubadúr válasza aroxol hozzászólására (») Júl 10, 2012 /
 
Lehet, hogy a probléma leírásával egyszerűbb lenne. Nagyon amatőr vagyok, de szerintem a programozási stílusban nem igen hathatós, a problémák megoldására nyitott fórumban. Ez egy lassan magától kialakuló, folyamat, megváltozik a programozási felfogással.
(#) n_yálastrubadúr válasza aroxol hozzászólására (») Júl 10, 2012 /
 
Úgylátom folyton ugyanazt ismétled.
  1. subrutin;IDE UGRASZ A KÉRT MŰVELETHEZ
  2. movlw0xff
  3. movwfturn;EZT AZ ÉRTÉKET SZÁMOLJA LE
  4. loop;( NEMTUDOM HÁNYSZOR ISMÉTLŐDIK NÁLAD
  5. btfssIN1;EZ MŰVELET, DE HA 30 SOR ÖSSZESEN AKKOR
  6. gotoKI;BIZTOS NEM 255 SZÖR )
  7. call TIMER_0MP
  8. btfssIN1
  9. gotoKI
  10. bcfLED
  11. callTIMER_1MP
  12. clrwdt
  13. btfscIN1
  14. bsfLED
  15. decfszturn,f;SEGÉDREGISZTER
  16. gotoloop
  17. return
(#) vilmosd válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Nem erted. Ez a TX/RX paros nem szereti az asszimetrikus jelsorozatot, vagyis a sima UART kimeno jelet, mert a vevo nem tudja kovetni az ado jelet. Erre talaltak ki a Manchester kodolast. Esetleg egy 4 kHz vivot modulalani az UART jelevel, de akkor le kell menned 300 Baud sebessegig. Sokat jatszottam ezekkel az ado-vevo parossal (nem ugyanez, de a felepites altalaban hasonlo) es igen gyengen muzsikalnak.
(#) aroxol válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Sajnálom ha fárasztó vagyok, nem vagyok programozo, még nagyon kezdö vagyok benne.

A lényeg az hogy a BTFSS IN1 indit egy timert -led világit -timer lejár - led kialszik a másik timer idejére- és igy tovább 30-szor. Eddig tulajdonképp egy villogó lenne. Viszont ha BTFSC IN1 bárhol az elözö 30 ismétlésen belül akkor megszakitja azt, és ugrik GOTO KI . Tulajdonképp ennyi lenne. Mint irtam ebben a sorrendben teljesen jol müködik, csak kicsit hosszú lenne igy, és biztos van rá rövidebb megoldás.
(#) n_yálastrubadúr válasza vilmosd hozzászólására (») Júl 10, 2012 /
 
Tapasztaltam a gyengeségét és bizonytalanságát. Egyelőre aszinkronban megy az 1es dupla hosszú mint a 0. De mindenképpen Manchaster-rel is kipróbálom. Szerinted egy kissebb rc-nek az irányítása job bal kitérés 0-256-ig és a sebesség (8bit PWM ) ami eddig 16bit meg lenne eszköz még 8 bit. Milyen idegkárosodásokat okoz mondjuk ha legfeljebb 20-30 méter a cél? Vagy hagyjam ezeket a modulokat?
(#) Stadi hozzászólása Júl 10, 2012 /
 
A következő projektemben, melynek főszereplője egy PIC16F877 lesz, szeretnék pár I/O lábat megspórolni, ezért arra gondoltam, a szükséges gombok kezelését az A/D konverterre bíznám. Erre léteznek rajzok a neten, de amikbe eddig belebotlottam, azok az ellenállások sorbakapcsolásával állították elő az osztási arányt. Ezen megoldás hátránya, hogy több gomb egyidejű lenyomását nem tudja megfelelően kezelni. Ezért én úgy döntöttem, hogy (részben) párhuzamos kapcsolással fogok dolgozni (lásd mellékelt ábra). Az eredő ellenállások alapján kiszámoltam az A/D bemenetére jutó lehetséges feszültségeket, és úgy tűnik, hogy kb. 80mV a legkisebb különbség két lehetséges érték között. Vagyis az említett PIC 10-bites felbontása jónak tűnik, hiszen az egy nagyságrenddel nagyobb (~5mV).

Ti mit gondoltok erről a megoldásról? Be fog válni a gyakorlatban?

AD_Keys.gif
    
(#) n_yálastrubadúr válasza aroxol hozzászólására (») Júl 10, 2012 /
 
Akkor ha jól értem egy gombnyomásra megáll?
(#) aroxol válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Igy van.
(#) n_yálastrubadúr válasza aroxol hozzászólására (») Júl 10, 2012 /
 
  1. loop
  2. bsfled;ledon
  3. calldelay;késleltetés
  4. bcfled;led off
  5. calldelay
  6. btfscsw1;nyomógomb ha 0 ugrik
  7. gotoloop;végtelen ciklus
  8.  
  9.  
  10. _end
  11. goto_end;vége innen csak resettel lépsz ki
(#) aroxol válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Igy már egy kicsit tisztábban látom köszönöm. Tehát akkor a btfcs swl csak azon az egy helyen szakit meg? A 2 idözités kb. 2mp, tehát akkor elképzelhetö hogy 2mp. nél hosszabb ideig is kell a swl-t nyomni. A 30 led on és a 30 led off-ot hova tudom betenni? A végtelenhez?
(#) n_yálastrubadúr válasza aroxol hozzászólására (») Júl 10, 2012 /
 
Ha azonnali kilépés kell akkor csinálj portb megszakítást, vagy tedd a gombvizsgálatot a késleltető rutinba. Milyen pic-cel foglalkozol?
(#) aroxol válasza n_yálastrubadúr hozzászólására (») Júl 10, 2012 /
 
Portb megszakitást hogy képzeljem el?
PIC18f14k22
(#) vicsys válasza Stadi hozzászólására (») Júl 10, 2012 /
 
Ha nem fontos a megszakítás, akkor szerintem jó lesz. Bár a főprogramban futtatnod kell a gombfigyelést (A/D olvasás).
(#) El_Pinyo válasza gyengus hozzászólására (») Júl 10, 2012 /
 
Szia!
Nekem pont ilyen klónom van, mint ami a linkeden szerepel, viszont más eladótól (sure electronics) vettem. Nem bántam meg, működik rendesen. Szerintem annyit megért, 13e-t nem szívesen adnék ki az eredetiért.
A döntés persze a tiéd.
Következő: »»   279 / 1210
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