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   105 / 1210
(#) watt válasza szitko hozzászólására (») Ápr 5, 2011 /
 
Nézd meg a Timer1-et. Annak megszakításait számlálva, meg lehet oldani a feladatot.
(#) szitko válasza watt hozzászólására (») Ápr 5, 2011 /
 
Sajnos a Timer1-nek más feladata van, a Timer2 a PWM-et vezérli, így hát csak a Tmr0 marad.
(#) icserny válasza potyo hozzászólására (») Ápr 5, 2011 /
 
Szerintem folyamatosan fejlesztik. Nemrég én is bejelentettem egy hibát, s még aznap (vasárnap délután!) válaszoltak.

A JALLIB például egy jól összeszedett könyvtárat is ad a fordító mellé. A JALEDIT pedig egy nagyon egyszerű, de hasznos IDE hozzá.
(#) potyo válasza icserny hozzászólására (») Ápr 5, 2011 /
 
Akkor elnézést kérek, én csak a sourceforge-os linken találtam rá és ott még 2004-es az utolsó bejegyzés. Viszont ettől függetlenül az elterjedtsége alacsony, nemtudom mennyire érdemes foglalkozni vele...
(#) foxi63 válasza szitko hozzászólására (») Ápr 5, 2011 /
 
Jó a timer0 is, csak amikor túlcsordul, akkor a megszakításban növel egy számlálót, ami lehet akár 24 bites is. Ezzel már bármekkora időzítő előállítható.
Annak a számlálónak az értékét megmár programból figyeled néha.
(#) watt válasza szitko hozzászólására (») Ápr 6, 2011 /
 
Egy Timert több dologra is lehet használni, ha periódikus mindkét esemény.
(#) icserny válasza szitko hozzászólására (») Ápr 6, 2011 /
 
Idézet:
„Bocsánat, hogy nem írtam, asm-ben próbálkozok.”
Akkor ez a program kell neked, s itt a megoldás (4 MHz-re).
Idézet:
„Ja és PIC16f882-ről van szó.”
Az mindegy. Az előző JAL példában csak a vezérlő nevét kell kicserélni.
(#) icserny válasza potyo hozzászólására (») Ápr 6, 2011 /
 
Idézet:
„nemtudom mennyire érdemes foglalkozni vele...”
Kb. annyira, mint a CCS C-vel, MikroC-vel. A különbség az, hogy itt a könyvtárak forrása is hozzáférhető.

A jelenlegi szinten kb. a PIC14K50 és a PIC18F4550 USB CDC, HID és bootloader, ameddig van támogatás, illetve PIC18F4620 FAT32 mintapéldákat láttam. Ami ezen túl van (TCP-IP, új mikrovezérlő típusok, illetve a 16 és 32 bites mikrovezérlők) az nem támogatott.

Magas szintű nyelv lévén nem nagy dolog áttérni JAL-ról C-re vagy Pascal-ra.
(#) szitko válasza icserny hozzászólására (») Ápr 6, 2011 /
 
[Akkor ez a program kell neked]
Köszi, de ez nem jó mert közben a PIC-nek más dolga van.Ha ezt a delay rutint berakom akkor mást már nem tudok csinálni, mert csak számlál meg számlál...... Úgy szeretném megoldani, hogy fut egy program, de csak 10 percig, és ha lejárt az idő, a program befejezi az éppen aktuális műveletet, és leáll. Valójában összetettebb lenne a művelet, de sajnos a PIC belső EEPROM-ját még nem tudom használni, ezért maradtam a 10min -os idözítésnél.
(#) Fényt Kibocsájtó Leddióda hozzászólása Ápr 6, 2011 /
 
Sziasztok!
Nem tudjátok, emelkednek a pic mikrokontroller árak a japán tragédia miatt vagy nincs rá hatással?

Egyes számitástechnikai eszközök ára ugy tudom már emelkedett...
(#) watt válasza Fényt Kibocsájtó Leddióda hozzászólására (») Ápr 6, 2011 /
 
Egyrészt valószínű emelkedni fog, másrészt nem csak a PIC-ek ára, de ez más kérdés...
(#) trudnai válasza Fényt Kibocsájtó Leddióda hozzászólására (») Ápr 6, 2011 /
 
Senki sem tudja pontosan, mindenesetre a Microchip tagadja, hogy barmilyen hatassal lenne a gyartasi lancfolyamatra, hiszen nem volt gyaruk az erintett teruleteken.

Itt irtam anno rola ill van ott egy link a hivatalos bejelentesre is:

Bővebben: Link
(#) Fényt Kibocsájtó Leddióda válasza trudnai hozzászólására (») Ápr 6, 2011 /
 
Köszi, azt sejtem hogy mindenre hatással lesz valamennyire.
A kérdés ugy helyes hogy a két fő mikrokontroller családot vajon egyformán érinti a várható árnövekedés vagy valami miatt lehetnek különbségek?

Esetleg ujjabb érv keletkezik valamlyik mellet, tovább mélyítve a vitát melyiket érdemesebb alkalmazni?
(#) gianni89 hozzászólása Ápr 6, 2011 /
 
Sziasztok!

Építettem egy keypad lcd PIC combót kb ahogy a mellékelt képen van. (csak pull up resistorok vannak a bill sorain illetve az oszlopokon nincsenek az 1K-sak rajta)
Írtam hozzá C18-ban meghajtó fv-ket, működik is minden szépen csak valamiért a program újra és újra lefut. Tehát ha pl kiírok valamit az lcd-re és bekérek egy számot és azt akarom h a szám jelenjen meg az lcd-n akkor késleltetéssel ki is tudom csalni azt viszont mindig visszaugrik az első szövegre. Ha valaki tudni esetleg tippet adni h ez miért lehet, hálás lennek.

Üdv

terv.JPG
    
(#) watt válasza gianni89 hozzászólására (») Ápr 7, 2011 /
 
Rosszul írtad meg a programot.
Ha értelmes választ is akarsz, lehet, hogy csatolni kéne a programot is!
(#) SzervízMacska válasza (Felhasználó 15355) hozzászólására (») Ápr 7, 2011 /
 
Így aztán rezeg, mint állat...
(#) gianni89 válasza watt hozzászólására (») Ápr 7, 2011 /
 
Hali.

Köszi a választ, mellékelem a forrást. Remélem tudtok segíteni.

@simpi: igazad van, rossz a kapcsolási rajz. Nem így van bekötve. Elkészítem az aktuálisat és felrakom.
(#) gianni89 válasza gianni89 hozzászólására (») Ápr 7, 2011 /
 
Bocs a dupla postért de nem találom a szerkeszt gombot.
Itt van az aktuális kapcsolási rajz. Köszi ha megnézitek.

terv.JPG
    
(#) icserny válasza gianni89 hozzászólására (») Ápr 7, 2011 /
 
Még mindig nem jó a rajz (vagy a kapcsolás):
1. Az MCLR bemenetet fel kell húzni (10 kOhm)
2. Mindkét VDD és VSS lábat be kell kötni (nem viccből vezetik ki két helyen) és mindkettő közé kell egy-egy 100 nF!

A programmal az a baj, hogy kimaradt belőle a végtelen ciklus, emiatt a program folyton újraindul.

Ilyen szerkezet kellene:
  1. main() {
  2.   előkészítés
  3.   while(1) {
  4.     fő ciklus
  5.   }

}
(#) gianni89 válasza icserny hozzászólására (») Ápr 7, 2011 /
 
köszi a választ:
1. Azt olvastam, hogy ha az MCLR lábat kikapcsolom kódban akkor nem kell bekötni.

2. Mindkét VDD és VSS láb be van kötve csak lemaradt a rajzról.

Módosítottam a maint ilyenre:
  1. void main (void){
  2. pointer = &tomb[0];
  3.  
  4. while(1){
  5.         init();
  6.         writeData(pointer);
  7.         key = keypad_scan();
  8.         if(key=='9'){
  9.                 clear_display();
  10.                 pointer = &tomb2[0];
  11.                 writeData(pointer);
  12.        
  13.         }
  14. }


Így működik is de csak akkor ír ki valamit is ha megnyomok egy gombot a keypadon. Ez miért lehet?
Illetve ha akármi mást a cikluson kívülre rakok vagy a pointernek a cikluson belül adok értéket akkor már nem működik.
(#) watt válasza gianni89 hozzászólására (») Ápr 7, 2011 /
 
Csak azokat kell ciklusmagba tenni, amiket többször kell vizsgálni az idő során. Az init(); ilyen függvény nálad? Nem hiszem...

Az MCLR lábat mindig fel kell húzni, vagy lehúzni 10k-val. Ha érdekel miért keress rá! Ezerszer leírtuk, kiveséztük, talán az oldalamon is megtalálod az erről szóló részt az égetők beállítása cikkben.
(#) kissi válasza gianni89 hozzászólására (») Ápr 7, 2011 /
 
Szia!

A PIC18F4550 tud belső MCLR-t, tehát ha ezt az üzemmódot bekapcsolod, akkor nem kell a felhúzóellenállás, mert olyankor RE3-ként működik !

Steve
(#) Hp41C válasza kissi hozzászólására (») Ápr 7, 2011 /
 
Szia!

Hallgass Watt -ra! :yes:
A MCLR vonalon nincs a PIC-ben védő dióda, könnyen tönkre lehet teni a kontrollert. Ha a MCLR láb lebeg vagy túl nagy impedanciás, a zavaroktól a kontoller programozási módba bármikor beléphet.
(#) gianni89 válasza watt hozzászólására (») Ápr 7, 2011 /
 
Rendben, felhúztam az MCLR-t.
Viszont a main()-be nem értem miért kell egyáltalán a while(1), hogy ne induljon újra az egész. Miért nem áll meg a main() végén a PIC futása? Valamelyik másik fv-ben írtam valamit ami újra indítja az egészet? Belegebedek se találom meg
(#) trudnai válasza kissi hozzászólására (») Ápr 7, 2011 /
 
Idézet:
„A PIC18F4550 tud belső MCLR-t, tehát ha ezt az üzemmódot bekapcsolod, akkor nem kell a felhúzóellenállás, mert olyankor RE3-ként működik !”


Valoban, azonban csak inputkent tud mukodni, raadasul nincs belso felhuzo ellenallasa (marmint az input pinnek), igy az lebegni fog. Lebego digitalis input pedig jobb esetben csak extra fogyasztast ideznek elo (a FET input buffer mukodesebol adodoan), rosszabb esetben pedig akar mukodesi zavarokat is (pl megrangatja a tapot, vagy EMI-t general stb).

Egy ellenallas nagyon olcso, a legolcsobb alkatresz! Annak a merete is eleg kicsi ahhoz, hogy ne okozzon gondot akarmilyen kapcsolasrol is legyen szo. Szoval ezen igazan nem erdemes sporolni foleg hogy ez kell a kielegito mukodeshez.
(#) trudnai válasza gianni89 hozzászólására (») Ápr 7, 2011 /
 
Idézet:
„Viszont a main()-be nem értem miért kell egyáltalán a while(1), hogy ne induljon újra az egész. Miért nem áll meg a main() végén a PIC futása?”


...mert igy irtak meg a forditot, hogy ilyen kodot generaljon... A PIC nem szamitogep, es nincs operacios rendszere, igy nincs ertelme hogy a programbol "kilepjunk", egesz egyszeruen mert nincs hova kilepni... Es hat anno valamikor valamilyen oknal fogva ugy dontottek, hogy ha a main-bol barmi miatt is kilepnenk akkor a start-up kod azonnal ujra hivja amain fuggvenyt (gondolom ennek eszkoz megbizhatosagi okai vannak, mmivel ha veletlen a programozo kilepne a main-bol akkor max ujra indul es igy kisebb mukodesi zavart okoz mintha megallna azaz lefagyna).

Ha meg akarod allitani akkor kell az a vegtelen ciklus a vegere...
(#) icserny válasza gianni89 hozzászólására (») Ápr 7, 2011 /
 
Idézet:
„Miért nem áll meg a main() végén a PIC futása?”
Azért mert a PIC mindaddig fut, amíg tápfeszültséget+órajelet kap. Nincs olyan utasítása, hogy HALT. A main függvényt úgy kell megírni, hogy sohasem legyen vége (végtelen ciklus).

Gondolj csak bele: ha nem ciklusban futna a programod, esélyed sem volna gombnyomással befolyásolni, mert már rég lefutott a program, mire a gombot megnyomod!
(#) gianni89 válasza icserny hozzászólására (») Ápr 7, 2011 /
 
Értem. Köszönöm a választ mindkettőtöknek. Van még probléma de akkor ezek alapján megpróbálom megoldani.

Üdv
(#) kissi válasza trudnai hozzászólására (») Ápr 7, 2011 /
 
Igazatok van! Kisebb PIC-nél én szoktam használni ( 12F675 ellenállás nélkül ), eddig nem volt probléma, de adott helyzetben lehet, hogy problémás lehet . Nagy lábszámú PIC-nél így a többi, nem használt lábra is kapcsoltok ellenállást vagy kimenetnek állítjátok?

!

Steve
(#) potyo válasza kissi hozzászólására (») Ápr 7, 2011 /
 
Kimenetnek, mert akkor nem kell ellenállás. 12F683-nál pl. el lehet hagyni az MCLR felhúzót is, ha az MCLR engedélyezve van, mert van belső felhúzó. De 12F675-nél nincs, oda mindig kellene felhúzó. Egyes újabb 18F-ek is tartalmaznak beépített felhúzót az MCLR lábon, ezeknél is lebegésben hagyható az MCLR láb, ha meg van hagyva MCLR-nek. De ez nem általános, adatlapból mindig meg kell nézni, hogy mi a helyzet ezen felhúzó terén.
Következő: »»   105 / 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