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   923 / 1207
(#) Hp41C válasza pajti2 hozzászólására (») Ápr 11, 2017 /
 
Pletyi, az nem igaz. Ez a hivatalos álláspont.
A hozzászólás módosítva: Ápr 11, 2017
(#) Hp41C válasza don_peter hozzászólására (») Ápr 11, 2017 /
 
... és ha nem titkos, az egész programot, hogy egyben láthassuk ...
(#) pajti2 válasza Hp41C hozzászólására (») Ápr 11, 2017 /
 
Leírtak ugyan valamit, de az vagy igaz, vagy nem (nem, nem igaz, mert nem tud igaz lenni). Rossz nyelvek szerint az Atmelt éppen azért vásárolták fel, mert beengedett a piacra olyan üzleti érdekeket, amik a felvevő piaci összefogás nevében nekiálltak irányítani az árakat a termelő érdekeivel szemben, és azokat az érdekeket le kell rombolniuk azért, hogy a saját üzletüket ők tarthassák kézben. Inkább szeretnének 10 millió kicsi vásárlót, mint 100 ezer nagyon nagyot. A már kiépült 100 ezer nagyon nagyot pedig gyűrniük kell egészen addig, míg vagy önként szétaprózódnak a belső érdekellentéteik miatt, vagy tönkre mennek, és átvehetik a helyüket újonnan épülő kicsi cégek. Szóval mindent összevetve, valójában semmi bajuk a belső állapotaikkal, még ha mi kicsike emberkék szívni is fogunk miatta. De persze az őszintét leírni nem lenne túl diplomatikus, szóval olyat tenni nem fognak.
(#) pajti2 válasza kriszrap hozzászólására (») Ápr 11, 2017 /
 
Szóval adva van egy mátrix, ahol oszloponként és szintenként csomópontokon vannak a ledek. Az oszlopok közösítve vannak egy áramkorlát ellenállásra, aminek a túloldalán egy npn tranzisztor open kollektorral gnd felé húz le izomból. A szintek pedig egyesével (csak az adott szinten belül) egy pnp tranzisztor open kollektorra vannak kötve (azon nincsen áramkorlát ellenállás) a +táp felé.

A ledeket úgy vezérled, hogy mindig kezdésnek lezársz mindent, kicsi kivárás, utána nyitod az adott szintet +táp felé, és kapcsolod az oszlopokat gnd felé. Azt tartod egy ideig, majd lezárod az oszlopokat is, és a szintet is, ami után kicsi kivárási idővel folytatod a következő szintnél ugyan úgy. Adott szinten ha semmit sem világítasz meg, a kivárási idők akkor is ott maradnak placeholdernek.

Van bármi eltérés a leírtakhoz képest akár az áramköri, akár a szoftveres koncepciódban?
(#) kriszrap hozzászólása Ápr 11, 2017 /
 
Csináltam egy minimalista képet a ledkocka "szerkezetéről"Természetesen a felsö három led egy szint .

"Azt tartod egy ideig," az kb mennyi idö legyen??
A kódóm igy nézki:
  1. igy hívom meg a fügvényt: fugveny xy(int led1....25,szint,millisecond)
  2.  
  3.    oszlopok(szint);
  4.    for(i=0;i<25*mill;i++)
  5.    {
  6.      LATA.RA4=elsoled1;
  7.      LATA.RA3=masodikled1;
  8.      LATA.RA2=harmadikled1;
  9.    .......
  10.      Delay_us(40);
  11.      ureskocka();Oszlopok nullázása
  12.  
  13.    }
  14.    
  15.    LATC.RC2=0;
  16.    LATC.RC3=0;
  17.  
  18.    LATA.RA6=0;//lacth enable "0" érték
  19.    LATC.RC1=0; //shift reset

annyit még ha minuszra felére teszem az ellenálást az sokkal nagyobb fényerőt eredményezne??
A hozzászólás módosítva: Ápr 11, 2017

Névtelen.png
    
(#) Elektro.on válasza Udvari Zsombor hozzászólására (») Ápr 11, 2017 /
 
A PIC adatlapjának ismerete nélkül nem tudod beállítani a konfigurációt.
Most nincs időm vissza olvasni melyik PIC -et használod, de szerintem neked nincs "d" és "e" portod.
(#) Udvari Zsombor válasza Elektro.on hozzászólására (») Ápr 11, 2017 /
 
Akkor megmondom én: PIC16F88! Annál melyik láb melyik port?
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 11, 2017 / 1
 
(#) attika válasza Pali79 hozzászólására (») Ápr 11, 2017 /
 
Ez nagyon jó, ilyet ,hogy lehet csinálni?
(#) Hp41C válasza pajti2 hozzászólására (») Ápr 11, 2017 /
 
Úgy értettem, hogy akkora a kavarodás Náluk, hogy kénytelenek voltak valamit írni. A ChipCad -nál is ott a felírat, hogy megkezdték az Atmel típusok árusítását, de meglehetősen hiányos a készlet. Még szokni kell: Microchip FPGA...
(#) Pali79 válasza attika hozzászólására (») Ápr 11, 2017 / 1
 
(#) Hp41C válasza attika hozzászólására (») Ápr 11, 2017 /
 
Elég lenne csak az aláhúzott szövegre kilikkelni...

@Udvari Zsombor:
Megírták, hogy nincs C, D, E , stb port, csak A és B. A programból mindent törölni kell, ami a C, D E portra hivatkozik.

Újból megkérdezem: Nem lett volna egyszerűbb egy PIC18F1320 -t rendelni?
A hozzászólás módosítva: Ápr 11, 2017
(#) cassis válasza pajti2 hozzászólására (») Ápr 11, 2017 /
 
C30 linkert nyaggatom éppen.
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 11, 2017 /
 
Akkor itt található a PIC16F88 pdf dokumentuma, melyben ha jól értelmezem, akkor 51. oldalnál vannak a portok. Csak ki kellene gyűjteni az összes portot egy felsorolásba, hogy számomra átláthatóbb legyen. Korábban itt mellékeltem a kapcsolásomat és aszerint melyik porton van a billentyűzet? (Mert azt kell egyedül bemenetre állítani, ha jól értem...)
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 11, 2017 /
 
Elején a 2-es oldalon "page 2" egyben láthatók a portok. RA0-RA6, RB0-RB7 portok vannak. A billentyűzet RA2, RA3 porton van rajzod szerint. Valószinűleg bemenetre kell állítani, de nem tudni mi jön az aljzatba.
(#) Elektro.on válasza Udvari Zsombor hozzászólására (») Ápr 11, 2017 /
 
Mem csak a portokat kell kigyüjteni, hanem a konfiguráció miatt a pwm modul, a az ADC a komparátor stb. adatait is. És már meg is tették neked. Ez maga az adatlap.
Az elejézől a végéig értelmezni kell, nem csak egy-két oldalt.
(#) Udvari Zsombor válasza nagym6 hozzászólására (») Ápr 11, 2017 /
 
Természetesen a PS/2 clock és data lábai vannak RA2, RA3 portokon. De hogy érted, hogy "aljzatba"? És akkor valahogyan így kellene?
  1. void main()
  2. {
  3. TRISRA0 = 0;
  4. TRISRA1 = 0;
  5. TRISRA2 = 255;
  6. TRISRA3 = 255;
  7. TRISRA4 = 0;
  8. TRISRA5 = 0;
  9. TRISRA6 = 0;
  10. TRISRB0 = 0;
  11. TRISRB1 = 0;
  12. TRISRB2 = 0;
  13. TRISRB3 = 0;
  14. TRISRB4 = 0;
  15. TRISRB5 = 0;
  16. TRISRB6 = 0;
  17. TRISRB7 = 0;
  18.  
  19. C1ON_Bit = 0;
  20. C2ON_Bit = 0;
  21. ANSEL = 0;
  22. ANSELH = 0;
  23. }
A videóban (csatolt pillanatkép) némely portot beírt "PORT" előtaggal is (nem csak "TRIS"), amit nem értek! Jó lesz ez így, vagy valamelyik portot írjam be másik előtaggal is? Kérlek, javíts ki!
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 11, 2017 /
 
Idézet:
„némely portot beírt "PORT" előtaggal is (nem csak "TRIS")”

A Tris határozza meg a Port bemenet, vagy kimenet legyen.
PORTA = 0 beír a port kimenetre értéket.
Nem tudom ez milyen programban van.
Valahogy így, az összes Trisa regiszter egyben beállítva. Porta2, Porta3 bemenet lesz.
  1. TRISA = % 00001100

bitenként állítva:
  1. TRISA.2 = 1
  2. TRISA.3 = 1
(#) pajti2 válasza cassis hozzászólására (») Ápr 11, 2017 /
 
Ez a legközelebbi fellelhető doksi: Bővebben: Link
(#) pajti2 válasza kriszrap hozzászólására (») Ápr 11, 2017 /
 
Szép finoman és diplomatikusan jelezném, de a kapcsolástechnikád el van ba**va

Gnd-hez mindegyik ághoz külön tranzisztor kell, nem közösítheted a gnd ágakat. Ha az áramkorlát ellenállásokat a +táp felől rakod be, akkor ott kell minden csoporthoz saját áramkorlát. Nem közösítheted a szintet egészben, ott is mindegyik csoporthoz külön kell kapcsoló tranzisztor. Ne is filozz a szoftveren, előbb az elektronikát javítsd ki.
A hozzászólás módosítva: Ápr 11, 2017
(#) kriszrap válasza pajti2 hozzászólására (») Ápr 12, 2017 /
 
Akkor az nem játszik hogy a korlátozó ellenállást gnd felé rakom?
Pont a ledkocka szétszedését szerezném elkerülni.két színű ledeket használok ezért használtam ezt a módszert kevesebb láb... . De ha nincs más....
(#) Hp41C válasza nagym6 hozzászólására (») Ápr 12, 2017 /
 
Nem az 1 felé kell állítani a TRISx bitjeit, hanem 0 felé, hiszen minden TRIS regiszter bit értéke alapállapotban 1. Továbbá nem jó az összes bitet kimenetre állítani, aztán egyesével bemenetre állítani, azokat ahol bemenet kell. Ekkor ugyanis szembe vezérelhetünk kimeneti fokozatokat (egy kapu kimenet hajtja a PIC lábát), nagy áramok indulhatnak meg, megzavarhatják a tápellátást, tönkremehet valamelyik fokozat.
A bitenként való állítgatás pedig terjengős. Egy 8 bites regiszterbe bármilyen minta beírható két utasításból, bites állítgatásnál 4-5 is kellhet, 16 vagy 32 bites kontrollernél gyakran látni 10 ... 20 különálló bites állítást is.
Mindig is hiányoltam a magasabb szintű nyelvelből a bitmaszkok definícióját a gyári h állományokból.
(#) pajti2 válasza kriszrap hozzászólására (») Ápr 12, 2017 /
 
A kevesebb láb okés, de csak annyira csökkentheted le, hogy még képes legyél minden egyes ledet külön kapcsolni be a többitől teljesen független áram úttal. Csak gondold végig, hogy az aktuális kapcsolástechnikádban azt hogyan tudod megtenni?

Hogy legközelebb ne szúrd el, még mielőtt szétbontod, nem ártana a ledek áramútjáról egy részletesebben elnagyolt kapcsolási rajz csupán azt ellenőrizni, hogy biztosan megértetted, és nem hibázod el. Rajzold bele abba a rajzba a kapcsoló tranzisztorokat is.
(#) Udvari Zsombor válasza nagym6 hozzászólására (») Ápr 12, 2017 /
 
Tehát ha jól értem, akkor a többi "PORT" legyen, és csak ez a kettő legyen "TRIS"? Vagy csak az legyen =1, ami bemenet? Amit én írtam, az most hogyan jó? És te tettél bele pontot is, úgyhogy kérdezem, hogy akkor én is tegyem bele?
Idézet:
„Nem tudom ez milyen programban van.”
Hogy érted? Ez a kód mikroc!
Vagy... Akkor most a "PORT" előtagú lesz bemenet??? És milyen értéke legyen??? Nulla, egy vagy kétszázötvenöt???
(#) nagym6 válasza Hp41C hozzászólására (») Ápr 12, 2017 /
 
Nem igazán értem mire gondolsz, nem szabadna a tris regisztert, vagy bitjeit oda-vissza váltogatni?
Nálam futás közbeni állítgatások is vannak egy tris bitnél. Ez hiba lenne, nem tudom.
Ez talán a MikroC program, ott utasításkészletben van bitenkénti állítás lehetőség.
Idézet:
„Ekkor ugyanis szembe vezérelhetünk kimeneti fokozatokat”

Gondolom egyik kimenet menne másikra, ez tervezési hiba. Vagy van valami amit nem tudok.
(#) kissi válasza nagym6 hozzászólására (») Ápr 12, 2017 /
 
Idézet:
„Továbbá nem jó az összes bitet kimenetre állítani, aztán egyesével bemenetre állítani, azokat ahol bemenet kell.”
Ezzel volt HP41C kollégának problémája...
Futás közben állítgatni a TRIS bitet csak akkor kell, ha egy lábon oda-vissza beszélgetések vannak ( pl. Dallas 1-wire chip-ek), egyébként általában nincs rá szükség!
(#) Elektro.on válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Ha "TRIS" értéke "0" akkor kimenet, ha "1" akkor bemenet.
Amennyiben a portot kimenetként konfiguráltad a "PORT" al beállíthatod az állapotát.
(#) kriszrap válasza pajti2 hozzászólására (») Ápr 12, 2017 /
 
pajti2 Összerakok egy normális kapcsolást a ledek elrendezéséröl
A hozzászólás módosítva: Ápr 12, 2017
(#) Hp41C válasza kissi hozzászólására (») Ápr 12, 2017 /
 
Így gondoltam... Futás közben lehet kapcsolgatni a TRISx bitjeit, de csak kellő gondossággal.
A hozzászólás módosítva: Ápr 12, 2017
(#) kriszrap hozzászólása Ápr 12, 2017 /
 
pajti2
Itt a ledkocka elrendezése

Névtelen.png
    
Következő: »»   923 / 1207
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