Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   913 / 1320
(#) rogers válasza icserny hozzászólására (») Feb 9, 2011 /
 
Köszi még egyszer.
(#) SzT3 hozzászólása Feb 10, 2011 /
 
Sziasztok.
Elég rég óta vagyok a fórum olvasója és egy két áramkört segítettetek is már megszülni de feltennék egy valószínü nagyon kezdő kérdést,
mindig beszéljük hogy a pic lábához minél küzelebb kel ezt meg azt forrasztani meg kondit meg ellenállást meg ilyeneket. . de ez tulajdon képpen mire is kell???

ezen a videon ahogy nézem az egyik leg egyszerűb pic-es futófény panel van de itt se látok tul sok mindent forrasztva a betáp felöl.
Bár látok rajt 10 ellenállást ebböl 8 gondolom a ledek elé, egy a nyomogomb és a pic közé és az a maradék 1 ellenállás meg a pic mellet az a kis kék "légypiszok" amit mindig beszélünk hogy a betáp felél a pichez?
Vagy akkor az kell vagy nem ? vagy nem kell de jó ha van ?!?!?!
Köszi
(#) SzT3 hozzászólása Feb 11, 2011 /
 
Illetve még egy kérdés hogy lehet azt megoldani hogy a bemenet ne egy nyomogomb legyen mint pl az elöbb linkelt videoba hanem egy másik pic vezérelt kimenete?
Köszi
(#) pixels válasza SzT3 hozzászólására (») Feb 11, 2011 / 1
 
Amit szokás közel rakni a PIC-hez, az a 100nF zavarszűrő kondenzátor a tápon. Ha t9bb csoportban van bevezetve a tép, akkor mindegyik csoportra 1-1db kondi, ezt a tápzavarok kiszűrése miatt minél közelebb kell rakni. Érdemes közel tenni a reset áramkört / reset felhúzó ellenállást is, így kicsi az esélye a véletlen resetnek a különböző zavarok hatására. Ha használsz kristályt, akkor azt is minél közelebb érdemes rakni, bár ennek pontos okát nem tudom (valószínűleg így stabilabb / pontosabb az órajel)
(#) potyo válasza pixels hozzászólására (») Feb 11, 2011 / 1
 
Idézet:
„Ha használsz kristályt, akkor azt is minél közelebb érdemes rakni, bár ennek pontos okát nem tudom (valószínűleg így stabilabb / pontosabb az órajel)”


Egyrészt minél közelebb van, annál kisebbek a szórt kapacitások és induktivitások, annál jobban hozza a megálmodott paramétereket az oszcillátor. Másrészt minden vezeték antennaként viselkedik, ami két okból hátrányos. Egyik ok, hogy zavarokat szed össze, a másik pedig, hogy zavarokat bocsájt ki. Néhány megahertzes kvarcok elmennének akár 10cm vezetéktávolsággal is, de jobb ha megszokjuk, hogy mindig a lehető legrövidebb vezetékezést használjuk a nagyfrekvenciás áramköröknél.
(#) trudnai válasza SzT3 hozzászólására (») Feb 11, 2011 / 1
 
Pixels-t kiegeszitve: Nem csak tapzavarokra van az ott, hanem mert minden vezetek egy antenna, az a kornyezetbol osszeszed mindenfele zajokat. Pl ha a feleseged porszivozik a masik szobaban, vagy bekapcsolja a konyhaban a mixert. De nem csak elektromos motorok szornak, minden, ami rezeg -- pl a PIC-edhez van ugye egy oszcillator, igaz ennek kicsi a szorasa, de ennek is van. A PC-d is szor, es nemcsak a processzornak van ott ugye oszcillatora, de az alaplapon rengeteg mas eszkoz is van, ezek egy resze mikrokontroller, masok FPGA-k stb. Aztan ott a PC kapcsolo uzemu tapja, az is szor, es ha mar a tapoknal tartunk, az osszes mobil tolto, tapegyseg stb, tulajdonkepp nehez is megszamolni egyetlen lakasban mennyi minden ketyere van amelyik eletromagneses zajokat keltenek.

Szoval 100nF minimum, van aki 1µF-ra eskuszik, de egy a lenyeg, hogy minel kisebb ESR (belso ellenallasu) kondenzator kell, pl keramia amelyik eleg olcso es tokeletesen megfelel a celnak.

Kvartz minel kozelebb: Ott tulajdonkepp mas (elsodleges) oka van: A vezetekeknek nem kivanatos induktivitasa, ellenallasa es kapacitasa is van. Ezek bejatszhatnak, megakadalyozva ezzel, hogy a kristaly rendesen berezegjen.
(#) SzT3 hozzászólása Feb 11, 2011 /
 
2 honapja olvasom a google-t meg a wiki-t de nem értettem meg.
Mostmeg elolvastam a hozzászólásotokat és értem a lényegét.
Köszönöm
(#) SzT3 hozzászólása Feb 11, 2011 /
 
Azt meg hogy a pic-en a programváltást ne nyomogomb hanem egymásik pic jele végeze, ugy tudom megoldani hogy egy npn tranzisztort teszek a nyomogomb"helyére" ha joltudom ott a bázisnak pozitív jelet kell kapnia ugy müködik.
Ami pont jo mert a pic kimenetén pozitív feszültség jelenik meg ugye?
(#) trudnai válasza SzT3 hozzászólására (») Feb 11, 2011 / 1
 
Ha mindket PIC ugyanakkora taprol jar, akkor tulajdonkepp kozvetlen is ossze kotheted oket -- de azert egy aramkorlatozo ellenallas nem art oda, 10 ohm minimum, de akar 1k-t is betehetsz. Az azert is jo, mert ha valamit elszursz a firmware-edben, akkor ha csak egy pillanatra is egyik PIC aktiv magasra mig a masik aktiv alacsonra valt, akkor ott hirtelen nagyon megemelkedne az aram -- ezt az ellenallasod szepen lekorlatozza...
(#) szilva válasza SzT3 hozzászólására (») Feb 11, 2011 / 1
 
Itt egyszer korábban már megpróbáltam megvilágítani, hogy miért is kellenek ezek a kondenzátorok a tápfeszültségre:Bővebben: Link
(#) trudnai válasza trudnai hozzászólására (») Feb 11, 2011 /
 
Bocsanat, most vettem eszre 10 ohmot irtam -- 100 -at szerettem volna!
(#) Kisvé hozzászólása Feb 11, 2011 /
 
Helló!
Nem tudjátok miért van az, hogy BSF/BCF utasítások, nem összes PORT lábat tudják állítani?
(#) mateakos válasza Kisvé hozzászólására (») Feb 11, 2011 /
 
Lehet, hogy bemenetnek vannak beállítva, vagy valamelyik belső modulhoz vannak hozzárendelve. A PIC16 sorozat egyes tagjainál RA4 kimenetként csak open drain-es, azon aktív magas szintet nem lehet kiadni, csak aktív alacsonyat.
Ellenőrizd az analóg/digitális konverter modul vagy komparátor modulok beállítását, ha azt eddig nem tetted meg. (Ha csak BSF, BCF utasításokkal van gond, de egyébként más utasítással írva megjelenik a kimenet, akkor nincs ötletem)
(#) mateakos válasza mateakos hozzászólására (») Feb 11, 2011 /
 
Jó lenne tudni, hogy milyen mikrovezérlőről van szó.
(#) Kisvé válasza mateakos hozzászólására (») Feb 11, 2011 /
 
Például SETF PORTD vagy MOVLW 0xFF MOVWF PORTD működik rendesen. BSF-fel, pedig csak pont minden 2. lábat rakja magas szintre.
(#) Hp41C válasza Kisvé hozzászólására (») Feb 11, 2011 / 1
 
Szia!

A BCF / BSF portra elvégezve előbb elolvassa a port bitjeit, aztán elvégzi a módosítást, majd visszaírja. Nem tudja állítani azokat a biteket, amelyik bemeneti lábhoz tartoznak, amellyek analógnak vannak beállítva. Az utóbbiakat mindig 0-nak olvassa a kontroller. Nem tudja azokat a biteket sem állítani, amikhez tartozó lábakat engedélyezett belső perifériák kezelnek - típusfüggő, hogy melyek ezek a perifériák.
Még egy probléma lehet, a kimenetre írt érték nem áll be egyáltalán a - statikus túlterhelés (led közvetlenül meghajtva) vagy addigra, amíg a (következő) utasítás beolvassa a port bitjeinek értékét - dinamikus (túl nagy kapacitás) miatt.

12F1xxx, 16F1xxx, 18F, 24F kontrollereken a LAT regisztereket használjuk a port helyett ezeknél a műveleteknél.
(#) Kisvé válasza Hp41C hozzászólására (») Feb 11, 2011 /
 
LATx-szel jó lett! Ezer hála és köszönet .
(#) watt válasza Kisvé hozzászólására (») Feb 11, 2011 /
 
További infóért keress rá az RMW rövidítésre!
(#) bankimajki válasza szilva hozzászólására (») Feb 11, 2011 /
 
Jól gondoltad, a modul hibás volt alapból. (A másik szépen működött, de az is beadta a kulcsot, kb. 1 óra szövegkiírás után.) Pedig minden a megadottak szerint volt bekötve. (Ezt a pech-et, ma egész nap a generátorom szoftverét magyarosítottam, meg módosítottam benne egy-két dolgot. És most meghal a kijelző. )
(#) Attila86 hozzászólása Feb 11, 2011 /
 
UDATA_ACS direktíva után elnevezek magamnak egy halom regisztert, de már nyavalyog hogy túl sok neki. Ezért a többit beraktam a sima UDATA direktívához. Nagyjából így néz ki tehát a dolog:
  1. UDATA_ACS
  2.         ÜZEMMÓD                                       res 1
  3.         ÜZEMMÓD2                              res 1
  4.         W_TEMP                                  res 1
  5.         STATUS_TEMP                             res 1
  6.         SZAM1_felso                             res 1
  7.         SZAM1_also                              res 1
  8.  
  9.         FESZÜLTSÉG                            res 2
  10.         ÁRAM                                   res 2
  11.         BEÁLLÍTOTT_FESZÜLTSÉG       res 2
  12.         BEÁLLÍTOTT_ÁRAM                      res 2
  13.         TELJESÍTMÉNY                  res 2
  14.         ELLENÁLLÁS                            res 2
  15.         MAX_FESZÜLTSÉG                        res     2
  16.         MAX_ÁRAM                               res     2
  17.  
  18.         AN_0_offset                             res     2
  19.         AN_1_offset                             res     2
  20.         AN_4_offset                             res     2
  21.         AN_6_offset                             res     2
  22.  
  23. ...itt van még rengeteg regiszter...
  24.  
  25.         UDATA
  26.         PIN_kód_ezresek                        res     1
  27.         PIN_kód_százasok              res     1
  28.         PIN_kód_tizesek                        res     1
  29.         PIN_kód_egyesek                        res     1
  30.         minta_tábla                            res TablSize            ;minták tárolására használt 160 bájt
  31. #define utolsó_elem    minta_tábla+LastIndex

A probléma pedig az, hogy az UDATA után írt regiszterjeimet (a PIN-kódosokat) nem 'kezeli'. Ez alatt azt értem, hogy a fordító lefordítja tehát nem hiányolja ezt a négy regisztert, viszont a programom nem csinál velük semmit se!
Tehát van például egy ilyen elég egyértelmű sorom:
  1. clrf    PIN_kód_ezresek

A debuggerrel léptetem a programot és amint áthalad ezen a soron, egyszerűen nem történik semmi! A Watch ablakban a regiszter nem lesz nulla és még csak nem is pirosozza ki ahogy szokta ha valamely megjelenített regiszter tartalma változik. Én manuálisan át tudom amúgy írni ha kétszer rákattintok, na de hát a PIC-nek kellene kezelnie...

Mi lehet a gond?
(#) Hp41C válasza Attila86 hozzászólására (») Feb 11, 2011 /
 
Szia!

Használd a banksel PIN_kód_ezresek makrót...
(#) Attila86 válasza Hp41C hozzászólására (») Feb 11, 2011 /
 
Szia!

Köszönöm, bevált!
A lapkiválasztásról egy éve olvastam utoljára, amikor elkezdtem a PIC programozást tanulni. Mindeddig valahogy sikerült megúsznom nélküle.
Viszont most akkor ugye majd az UDATA_ACS-ket nem fogom elérni hogyha nem váltok vissza?
(#) Hp41C válasza Attila86 hozzászólására (») Feb 11, 2011 /
 
Szia!

Az ACCESS bank alsó fele (hagyományos utasítás mód mellett) a 0. Bank 0x00 - 0x7F címét éri el a BSR tartalmától függetlenül:
  1. movwf 0x00, ACCESS

A ACCESS bank felső fele a 15. Bank 0x80 - 0xFF címét éri el a BSR tartalmától függetlenül:
  1. movwf PORTA, ACCESS

A többi címen elhelyezkedő adatokat a BSR beállítása után a
  1. movwf akarhova, BANKED

utasítással lehet elérni, vagy indirekt címzéssel, vagy a teljes címeket használó
  1. movff akarhonnan,akarhova
utasítással.
(#) Attila86 válasza Hp41C hozzászólására (») Feb 11, 2011 /
 
Köszönöm!
(#) watt válasza bankimajki hozzászólására (») Feb 11, 2011 /
 
Szerintem nincs olyan, hogy egy csak úgy meghal egy kijelző...
(#) bankimajki válasza watt hozzászólására (») Feb 11, 2011 /
 
Ezt én is így gondolom, de mivel PC-->PICKIT2-->16F877-->KIJELZŐ volt bekötve. És tesztelve. (Működött is rendesen sokáig.) Így a tápfesz. 5V alatt volt. Annyi hogy kellett neki -5V is, mert ez olyan típus volt. (Ezt a -5V-ot labortápon kb. 4,8V-ra lőttem be. És ez közös volt a tesztpanelem GND-jével.) A trimmerrel belőttem a kijelzőn a kontrasztot és elkezdtem fejleszteni a szoftvert. (Kb. vagy 100 új hex.-et égettem bele.) Már majdnem minden tökéletes volt. (Elmentem kajálni, közben mindent bekapcsolva hagytam. És mire visszatértem a kijelzőn semmi adat. Rátettem egy 2*16-os eredeti Hitachi-t, az szépen működött.) Átnéztem mindent, de semmi nem változott. A köv. próbánál már melegedett az egyik meghajtó fokozat a kijelzőn. És ugyanazt a jelenséget produkálta, mint amit itt korábban bemutattam egy videó keretein belül.) (Szerintem ez valami selejt szériás kijelző lehet. Ma lesz még egy. Azt gondosan figyelni fogom az első pár órán át.) Remélem annak nem lesz semmi baja, mivel a doboz már erre a méretre ki van vágva. (Meg a kódot is átírtam 2*20karakteresre.)
(#) watt válasza bankimajki hozzászólására (») Feb 11, 2011 /
 
A programodban előfordul, hogy az LCD-ből kiolvasol valamit? Vezéreled az írás/olvasás lábat?
(#) bankimajki válasza watt hozzászólására (») Feb 11, 2011 /
 
Nem, az GND-re le van húzva egy 1k-s ellenállással. (Azt mondjuk tudni kell hogy a helyszín egy kollégium 4. emelete, ahol igencsak komoly potenciálgondok vannak. A digitális cuccaim szeretnek megkattanni, ha közelítek hozzájuk és nincs az egyik kezem a hálózat föld potenciálján. (Na meg a linóleum padló sem igazán használ az elektronikának.) Egyébként a PIC-em is néha bekattant, így a tesztpanelem földjét összekötöttem a hálózati földdel. Meg ha valami olyat csinálok, akkor én is fogom a földet. (Ez biztonságtechnikai szemmel elég gáz, de máshogy nem működnek a dolgok rendesen, persze azért egy FI relé van a hálózat és a cuccaim között.)
(#) bankimajki hozzászólása Feb 11, 2011 /
 
Kezdem megutálni ezeket az LCD-ket. Szereztem egy 3.-at is (2*20-as kínai csoda) és az is rossz, amellett még szivatásból a kábelei beforrasztásánál meg volt cserélve a D5 és D4. Ez is alapból azt csinálja, mint amit a videóban mutattam. (És minden jól van összerakva, mivel a 2*16 karakteres kijelzőm tökéletesen teszi a dolgát.)
Következő: »»   913 / 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