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   924 / 1207
(#) Udvari Zsombor válasza Elektro.on hozzászólására (») Ápr 12, 2017 /
 
Jó, értem. Akkor a bemenet "TRIS" és =1, kimenet pedig =0. Viszont kell-e a "PORT" használata is, vagy elhagyható?
A hozzászólás módosítva: Ápr 12, 2017
(#) Hp41C válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
A PORTA, PORTB regisztereken keresztül tudsz adatot beolvasni (az előzőekben bemenetre állított lábakon a rá kapcsolt jel szintjét, a kimenetnek kapcsoltakon az előzőleg beírt adatnak megfelelőt (ha nincs túlterhelve)) és adatot kiadni (a kimenetnek kapcsolt lábakra).
(#) Udvari Zsombor válasza Hp41C hozzászólására (») Ápr 12, 2017 /
 
Tehát valahogy így?
  1. void main()
  2. {
  3. TRISRA0 = 0;
  4. TRISRA1 = 0;
  5. TRISRA2 = 1;
  6. PORTRA2 = 255;
  7. TRISRA3 = 1;
  8. PORTRA3 = 255;
  9. TRISRA4 = 0;
  10. TRISRA5 = 0;
  11. TRISRA6 = 0;
  12. TRISRB0 = 0;
  13. TRISRB1 = 0;
  14. TRISRB2 = 0;
  15. TRISRB3 = 0;
  16. TRISRB4 = 0;
  17. TRISRB5 = 0;
  18. TRISRB6 = 0;
  19. TRISRB7 = 0;
  20.  
  21. C1ON_Bit = 0;
  22. C2ON_Bit = 0;
  23. ANSEL = 0;
  24. ANSELH = 0;
  25. }
Kell-e a kimenetekhez is "PORT" vagy elég a bemenetekhez?
(#) Hp41C válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Ha lemondod, elfelejtem, ha látom, megjegyzem, ha csinálom, megértem. (c) Confucius

Fordítsd le, meglátod mit üzen a fordító...

Idézet:
„Kell-e a kimenetekhez is "PORT" vagy elég a bemenetekhez?”

Az előbb leírtam.
A hozzászólás módosítva: Ápr 12, 2017
(#) Udvari Zsombor válasza Hp41C hozzászólására (») Ápr 12, 2017 /
 
Tehát majd ha nem tetszik a fordítóprogramnak, akkor kell? Rendben... :/
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Ha külön-külön kezeled a biteket, akkor csak bit nagyságrendű értéket adhatsz neki! Tehát a PORTA2=255 nem lehet!
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 12, 2017 /
 
Akkor mennyi legyen? Elég a 0, mint a videóban?
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Huh basszus... Ha egy port valamely bitje bemenet mint nálad a PORTA2 (mivel a hozzá tartozó TRISA2=1, tehát benetnek állítod) akkor nincs értelme neki bármilyen értéket is adni!

2 forintos kérdés: milyen értéket vehet fel egy bit?
(#) pajti2 válasza kriszrap hozzászólására (») Ápr 12, 2017 /
 
Ahova nyilaztad, oda átrakhatod az ellenállásokat, és a mostani rajz szerinti helyükről pedig vedd ki. Hogy rendesen működjön a kockád, a mostani ellenállások helyére egy-egy pnp meghajtó tranzisztor fog neked kelleni (hogy kifelé kevesebb lábbal állíthasd össze a kocka egészét), a mostani pnp tranzisztorokat pedig le kellene cserélni npn-re - most komolyan, hogyan gondoltad abban a pozícióban kinyitni azokat a pnp-ket?
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 12, 2017 /
 
Akkor egyszerüen ne legyen értéke? Vagy elég a nulla? Ha nem jó, kérlek, ebbe javíts bele!↓
  1. void main()
  2. {
  3. TRISRA0 = 0;
  4. TRISRA1 = 0;
  5. TRISRA2 = 1;
  6. PORTRA2 = 0;
  7. TRISRA3 = 1;
  8. PORTRA3 = 0;
  9. TRISRA4 = 0;
  10. TRISRA5 = 0;
  11. TRISRA6 = 0;
  12. TRISRB0 = 0;
  13. TRISRB1 = 0;
  14. TRISRB2 = 0;
  15. TRISRB3 = 0;
  16. TRISRB4 = 0;
  17. TRISRB5 = 0;
  18. TRISRB6 = 0;
  19. TRISRB7 = 0;
  20.  
  21. C1ON_Bit = 0;
  22. C2ON_Bit = 0;
  23. ANSEL = 0;
  24. ANSELH = 0;
  25. }
(#) Hp41C válasza Pali79 hozzászólására (») Ápr 12, 2017 /
 
Úgy tudtam, hogy csak 10 ember van, aki érti a kettes számrendszert.
(#) Pali79 válasza Hp41C hozzászólására (») Ápr 12, 2017 /
 
Igen, így van...
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Te most direkt táncolsz az idegeimen? Mond! Mi nem volt világos abban, hogy:
Idézet:
„nincs értelme neki bármilyen értéket is adni!”

A nulla IS egy érték!
(#) usane válasza Hp41C hozzászólására (») Ápr 12, 2017 /
 
Nem kell oda az atmel. Van ott kavarodás a saját házuk táján is bőven...
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Arról nem is beszélve, hogy milyen hibákat hagysz így benne! Fent már írták, hogy kezeld egybe:
  1. TRISA = % 00001100


Ugyanis Te a 7. bitet nemes egyszerűséggel kihagytad! A TRISB külön szedésének meg aztán végképp semmi értelme, mert mind 0. tehát jobb így:
  1. TRISB = % 00000000
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 12, 2017 /
 
Akkor így? Vagy kell még egy karakter, például pontosvessző?
  1. void main()
  2. {
  3. TRISRA0 = 0;
  4. TRISRA1 = 0;
  5. TRISRA2 = 1;
  6. PORTRA2
  7. TRISRA3 = 1;
  8. PORTRA3
  9. TRISRA4 = 0;
  10. TRISRA5 = 0;
  11. TRISRA6 = 0;
  12. TRISRB0 = 0;
  13. TRISRB1 = 0;
  14. TRISRB2 = 0;
  15. TRISRB3 = 0;
  16. TRISRB4 = 0;
  17. TRISRB5 = 0;
  18. TRISRB6 = 0;
  19. TRISRB7 = 0;
  20.  
  21. C1ON_Bit = 0;
  22. C2ON_Bit = 0;
  23. ANSEL = 0;
  24. ANSELH = 0;
  25. }
(#) don_peter válasza kriszrap hozzászólására (») Ápr 12, 2017 /
 
Pozitív irányban ahol neked most ellenállások vannak, oda nem kell ellenállás, hanem oda egy meghajtó IC vagy PNP tranzisztor kell. Ezt a PNP tranzisztort kell meghajtódon a PIC-el. Ez lesz az adat vezérlés. (sorok)

Ami alul van neked a rajzon az PNP tranyó, oda nem az kell, hanem NPN negatív tranzisztor fog kelleni. Az ellenállást pedig az NPN kollektorára vagy emitterére (inkább az emitterére) kell sorba kötnöd. Ennek megfelelően az NPN emitter lábát földre kell kötnöd.
(#) don_peter válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Nem figyelsz, ki fogsz mindenkit akasztani.
  1. void main()
  2.     {
  3.     TRISA = 0b00000000; // 0; vagy 0x00;
  4.     TRISB = 0b00000000; // 0; vagy 0x00;
  5.  
  6.     C1ON_Bit = 0;
  7.     C2ON_Bit = 0;
  8.     ANSEL = 0;    //vagy 0b00000000; vagy 0x00;
  9.     ANSELH = 0;    // vagy 0b00000000; vagy 0x00;
  10.     }
"C1ON_Bit" ezt nem tudom, hogy jó e, ha fordul a program hiba nélkül, akkor a fordítód ismeri.
Ha egy regiszterben 0-át írsz, akkor az egész regisztert 0-ra állítod. A regiszterhez tartozó összes bit 0 lesz.
A hozzászólás módosítva: Ápr 12, 2017
(#) Udvari Zsombor válasza don_peter hozzászólására (») Ápr 12, 2017 /
 
"C1ON_Bit" - A videó azt mondja, hogy kikapcsolja a komparátorokat vagy mit, alatta pedig az analóg-digital konverziót is kikapcsolja... Tehát jó ez így? Mert ha igen, akkor haladok tovább a kód többi részével...
(#) Elektro.on válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 / 1
 
1- Elektronikai ismeretek,
2- Programozási ismeretek,
3- PIC adatlap használata ( nem pohár akátétnek),
4- MikroC compiller súgó használata.


ÁÁÁÁÁÁ feladom...
Lőjetek le ha még egy választ írok ehhet a témához..
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Nem ismerem ezt a nyelvet, de fent írák:
  1. TRISA.1=0
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 12, 2017 /
 
Rajzodat nézve a Port és Tris utasítások ennyi, nem több:
  1. Trisa = % 01111100
  2. Trisb = % 00001111
  3. Porta = 0
  4. Portb = 0

Ezután már a C1ON-tól folytatódik.
Porta, Portb utasítások elvileg nem kellenek egy sem, csak induláskor legyen 0 értéke. Utána ezek állapotát a program adja majd.
Ra0, Ra1 kimenet lcd vezérlői, Rb4-Rb7 kimenet lcd adatvonalak. Ra2, Ra3 a PS2 csatlakozón bemenetek. És a többi nem használt portok bemenetek.
A hozzászólás módosítva: Ápr 12, 2017
(#) kriszrap hozzászólása Ápr 12, 2017 /
 
Elnézést figyelmetlenség bocsánat igen a rajzon PNP tranziztort raktam oda elnézést...
NPN van ott név szerint bc337
Idézet:
„Pozitív irányban ahol neked most ellenállások vannak, oda nem kell ellenállás, hanem oda egy meghajtó IC vagy PNP tranzisztor kell. Ezt a PNP tranzisztort kell meghajtódon a PIC-el. Ez lesz az adat vezérlés. (sorok)”
De miért PNP ?? Nem jó oda a NPN (nem kötöszködöm )
Az adatot (sorokat) shiftregiszter vezérli.
(#) don_peter válasza kriszrap hozzászólására (») Ápr 12, 2017 /
 
És mit csinál majd az NPN tranzisztorod?
Neked meghajtás kell oda..
Shiftregiszter egy lábról meghajt kellemesen 1 LED-et, (nézd meg az adatlapot mennyit bir bitenként) de mi történik, ha 4-5-6db LED-et kell meghajtania. (gyenge lesz, vagy meg is sül)
Ráadás NPN azért NPN mert negatív kapcsolású.
PNP tranzisztorral kiváltod, a soronkénti meghajtást. Vagy is lesz elég kraft.

PNP tranyó bázisát hajtod meg a shiftregiszterrel, majd emitterére ráküldöd az 5v-ot, és kollektorára a LED sort. Ennyi..
(#) kriszrap válasza don_peter hozzászólására (») Ápr 12, 2017 /
 
Inkáb egy rajzot tudnál küldeni??
Zavaros. Értem hogy tranzisztor kell oda mert 90mA körül lesz az áram és 74hc595 35mA egy bitje.

Idézet:
„És mit csinál majd az NPN tranzisztorod?”
Shiftregiszter ha pluszt add valamelyik lábán akkor kinyit. Gondolom collectro 5v fele emitter led + lábhoz.
(#) don_peter válasza kriszrap hozzászólására (») Ápr 12, 2017 /
 
Csatoltam egy lehetséges megoldást.
De jobb megoldás egy már említett ULN2003-as meghajtó IC.

led.JPG
    
(#) Gabó válasza Elektro.on hozzászólására (») Ápr 12, 2017 /
 
Nem akarok belefolyni, mert picek tere nem a világom, de meglátásom szerint, egy Hello world kiíratása lcde jobb lenne indulásnak neki, mint kapásból a programja megírása. MikroChez rengeteg tutorial van ilyen kiíratásra stb. Meg úgy más feladatokra is. Azzal kéne ismerkednie.
De ez csak szerény véleményem. Akik meg kitartanak, jár a
(#) attika válasza Gabó hozzászólására (») Ápr 12, 2017 /
 
Már nagyon sokszor le lett neki minden írva ha egy kicsit visszaolvasol.
Egy két videóba bele bele nézegetett mert csatolt róla képet is, de szerintem semmi több.
Előbb utóbb össze fog neki jönni mert ahogy elnézem elég kitartóan ostromozza az itt lévőket Egy két fórumozó már lemorzsolódott de mindig van valaki aki be be segít neki amin el tud indulni és ha nem biztos a dolgában akkor felteszi ugyan azt a kérdést még egyszer meg még 100X.
Sok falba fog még ütközni mert az eddigiek alapján szerintem még meg se próbálta lefordítani a programját, meg ha esetleg meghaladja a 2K-t akkor a próba verziós Mikroc le se fordítja neki, vagyis lefordítja és még csak ki sem írja, hogy túllépte a 2K-t.
Nekem a próbaverziós Mikroc fordító amikor próbálkoztam vele nem figyelmeztetett, hogy túl léptem a határt, hanem amikor próbáltam volna a programot akkor nem indult el.
Nekem ezek a tapasztalataim a mikroc fordítójával, de az is lehet, hogy én szúrtam el valamit a nem hozzá értésem miatt.
(#) Gabó válasza attika hozzászólására (») Ápr 12, 2017 /
 
Régebben én is foglalkoztam a picek világával, és pont a microC fordítóval. Ismerem a 2K-s "demot" én is belefutottam, és néztem, hogy nem jó a kódom... pedig igazából jó volt, csak a korlát. Na meg proteusba szimuláltam. Elég sok tutorial van benne, ezért is ezzel kezdtem. Mostanság aruinot nyúzom, ha kell hirtelen valamire egy kis áramkör kis programmal. De igen, az elején szenvedni lehet, mikor ellenőrzöd a kódod, és sorra jönnek a hibák. Elég egy rossz pont, vagy vessző, lezárás stb, és máris hiba (persze ez az összes programozásra érvényes). Az ilyen be-be illesztett kódrészleteket pont ez miatt nem szeretem.
Azért is javasoltam, hogy kezdje a Hello world kiíratásával, mert meg lehet ismerkedni az lcd kezeléssel és picel, mintaprogram is van rá. Aztán lehet variálni a bemenetekkel, ADC kiíratás ilyenek. Csak lépésről lépésre kellene menni. Sokkal jobban tanul belőle az ember
Meg jó, ez a megkérdezem, ha nem értem, de amikor már lényegébe nem lehet jobban elmondani, és rákérdez, azért kicsit tényleg kiakasztó. Lásd lemorzsolódott tagok.
A hozzászólás módosítva: Ápr 12, 2017
(#) kriszrap válasza don_peter hozzászólására (») Ápr 12, 2017 /
 
Köszönöm csak még mindig nem értem PNP miért jobb itt mint az NPN....
Következő: »»   924 / 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