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   656 / 1208
(#) Pali79 válasza lastewer hozzászólására (») Ápr 1, 2015 /
 
Én assembly-ben programozok, nem értek máshoz..
(#) lastewer válasza Pali79 hozzászólására (») Ápr 1, 2015 /
 
Értem , köszi
(#) usane válasza lastewer hozzászólására (») Ápr 1, 2015 /
 
Ha a villogást delayyel csinálod akkor persze, hogy késleltetve lesz, mert addig nem csinál semmit a kontroller. Timeres megszakítással villogtass és akkor nem lassítja a főprogram futását.
(#) lastewer válasza usane hozzászólására (») Ápr 1, 2015 /
 
Köszönöm
(#) Kapagerenda hozzászólása Ápr 1, 2015 /
 
Üdv,
Azt meglehet csinálni, hogy egyszerre két fajta megszakítást használók? Mivel szükségem lenne két külömböző időzítésre ami egyszerre fut. TMR0-át szeretném működtetni a belső öszcillátor segítségével valamint a TMR1 időzítőt is viszont azt egy külső léptetés segítségével. TMR0 és TMR1 túlcsordulásakor jön be a megszakítás, szóval futhat e több megszakítás egyszerre vagy, miként lehetne ezt megvalósítani mivel a második időzítést nem szeretném delay-es megoldással megcsinálni hanem azt is egy perifériával a TMR0-val. Előre is kösz
(#) kissi válasza Kapagerenda hozzászólására (») Ápr 1, 2015 /
 
Szia!

Persze, csak a megszakításban ez IF bitek vizsgálatával el kell dönteni, hogy ki kezdeményezte !
Ha van többszintű megszakításod ( pl. 18-as sorozat ), akkor lehet külön megszakításszintre programoznod, de akkor tudnod kell, hogy az alacsonyszintűt a magasszintű megszakíthatja !
(#) Kapagerenda válasza kissi hozzászólására (») Ápr 1, 2015 /
 
Nekem 16f887 esem van. Szóval először végrehatja az egyik megszakítást majd utána kezeli a másik megszakítást? Ebben az esetben nem lesz hatással az egyik időzítő működése a másikra? Esetleg egy rövid példaprogrammal nem tusz szolgálni, hogy miként is lehet ezt programon belül kialakítani? Két megszakításos progit nemtaláltam.
(#) icserny válasza Kapagerenda hozzászólására (») Ápr 1, 2015 /
 
Az időzítő működésére nem lesz hatással, de azt nem árt megjegyezni, hogy a megszakítási esemény keletkezése és kiszolgálása között több-kevesebb idő eltelik, s ebbe szólhat bele a többi megszakítás...
(#) kissi válasza Kapagerenda hozzászólására (») Ápr 1, 2015 /
 
A 16-os sorozatnak egyszintű megszakítása van. Jelez a TMR0, ezért beugrik megszakításba, ott eldöntöd a TMR0IF vagy TMR1IF jelzett, megcsinálod a szükséges lépéseket, majd kilépsz. Mivel a Timerek hardveresen mennek, ezért az, hogy az egyikhez tartozó feladatot végzed, ez nem befolyásolja a másik működését! Egyszerre a proc. persze csak 1 dolgot tud csinálni, tehát itt is a két dolog csak egymás után következhet!
Nézd meg a pdf-ben a megszakítás részt !
(#) Kapagerenda válasza kissi hozzászólására (») Ápr 1, 2015 /
 
oks kösz!
(#) lastewer hozzászólása Ápr 1, 2015 /
 
Nincs valakinek ethernetes Proteus kapcsolása ami működik ? Proteusban szeretném szimulálni .
A hozzászólás módosítva: Ápr 1, 2015
(#) Hp41C válasza lastewer hozzászólására (») Ápr 1, 2015 /
 
Tényleg.. Tud is vagy 150 -et (grep CHIPname chipdata.cid | wc -l)...
A PICkit2 kb. 600 -at, a PICKit3 közel 900 -at...
Nem tudom, mit kell majd kezdeni, ha a mondjuk egy újabb féle törléssel rendelkező kontrollert kellene kezelni (EraseMode 0 .. 7 van a programban). Már egy 16F88 vagy a 16F88x -et nem tud kezelni, hiszen két konfigurációs szavuk van.
A PICkit2 vagy 3 nem csak programozó, hanem nyomkövető is... Bőven megéri az árát..
Nekem elhiheted, a PICkit2 "adatbázisába" is fel lehet venni újabb típusokat.
A hozzászólás módosítva: Ápr 1, 2015
(#) Pali79 válasza Hp41C hozzászólására (») Ápr 1, 2015 /
 
Szerintem már meggyőztük.
(#) lastewer válasza Hp41C hozzászólására (») Ápr 1, 2015 /
 
Venni fogok .
(#) killbill válasza Hp41C hozzászólására (») Ápr 1, 2015 /
 
grep | wc -l Nem hittem volna, hogy ezen a topicon ilyet is latni...
(#) don_peter hozzászólása Ápr 2, 2015 /
 
Srácok, a timer által okozott megszakítás az egyenértékű egy külső periféria által okozott megszakítással igaz?
Tehát mind kettő esetben a főprogramból a megszakításra ugrik, végrehajtja az utasításokat majd visszatér a főprogramhoz, oda ahol abbahagyta.
Ez így helyes?
(#) Zsolt2 válasza don_peter hozzászólására (») Ápr 2, 2015 / 1
 
Egyenerteku, ha prioritasok megegyeznek.
(#) lastewer hozzászólása Ápr 2, 2015 /
 
MikroC-ben , hogyan tudom beállítani a konfig biteket ? Próbáltam CP = 1; Nem jó. CP : 1; nem jó.

Én akarom beállítani a kódban. Nem találok ezekről semmi leírást neten.
A hozzászólás módosítva: Ápr 2, 2015
(#) Hp41C válasza lastewer hozzászólására (») Ápr 2, 2015 /
 
(#) Lamboo hozzászólása Ápr 2, 2015 /
 
Sziasztok!
Nemrég ismerkedésbe kezdtem a PIC programozással C nyelven és lenne egy eléggé kezdő kérdésem. Van például egy változóm amiben egy 4 számjegyű számot tárolok. Hogyan tudom ezt helyi értékenként lekérdezni belőle és elmenteni ezt az egy számot egy másik változóba?
Előre is köszönöm a segítséget!
(#) don_peter válasza Lamboo hozzászólására (») Ápr 2, 2015 /
 
Tedd egy tömbbe a számokat és akkor egyesével is lekérheted.
Vagy ha a számod típusa int és egyben van, akkor át kell konvertálnod char típusra.
Az itoa(), atoi() függvények fognak neked segíteni, persze ha jól értem amit kérdezel.
A hozzászólás módosítva: Ápr 2, 2015
(#) kissi válasza Lamboo hozzászólására (») Ápr 2, 2015 /
 
Úgy, mint a való világba, ha ki kell fizetned 3458 Ft-ot ! Elosztod 1000-el, megkapod az ezresek számát, a maradékot elosztod 100-al, megkapod a százasok számát és ha nem adod fel meglesz a tízesek és az egyesek száma is ( ott már nem biztos, hogy kell osztani ! ) !
szerk.: Remélem jól értettem a kérdésedet ?!
A hozzászólás módosítva: Ápr 2, 2015
(#) Lamboo hozzászólása Ápr 2, 2015 /
 
Jól értelmeztétek, köszönöm a segítséget mindkettőtöknek!
(#) lastewer válasza Hp41C hozzászólására (») Ápr 2, 2015 /
 
Szia , megnéztem letöltöttem a programot , megnyitottam a Pic típust , elmentettem , majd a kódomban hozzáadtam ezt a sort az elejére :
  1. #pragma config WDTEN = 0


Fordításkor pedig ezt kapom :
Idézet:
„0 1507 Unknown pragma line ignored: '' lcd.c”
A hozzászólás módosítva: Ápr 2, 2015
(#) Lamboo hozzászólása Ápr 2, 2015 /
 
Még egy kérdésem lenne, nem vagyok túl jó angolból. A 16F887-es picnek csak az RB0 lába használható külső interruptként? Vagy az egész port?
(#) don_peter válasza Lamboo hozzászólására (») Ápr 2, 2015 / 1
 
TABLE 1-1: PIC16F882/883/886 PINOUT DESCRIPTION-ben azt írja, hogy az egész porton lehet interrupt-ot használni.
Idézet:
„General purpose I/O. Individually controlled interrupt-on-change. Individually enabled pull-up.”
Azt is írja RB1,2,3,4,5,6,7-re, hogy egyénileg szabályozható interrupt.
Ami fura, hogy csak az RB0-ra írja, hogy külső...
A hozzászólás módosítva: Ápr 2, 2015
(#) cross51 válasza don_peter hozzászólására (») Ápr 2, 2015 /
 
Igen úgymond úgymond mindkettő külső de az INT láb ennél a PICnél megadható, hogy felfutó vagy lefutó élre billen. Az IOC a nevéből is ereded, hogy megszakítás változásra 0->1 1->0 mindkettőre megszakít(az újabb 16f-be már az IOC-ra is beállítható, hogy felfutó lefutó vagy mindkét élre billen).

Valamint az INT láb egy magasabb rendű nem periferiális megszakítás elég, ha az INTCON GIE és INTIE bitje 1. Az IOC viszont már egy periferiális megszakításnak számító megszakítás INTCON GIE PIE RBIE és az IOCB-ből amelyik PORT-ra szeretnénk a megszakítást 1-nek kell lennie.

De a lényeg az egészből, hogy a PORTB-n végig van felhúzás és az egész PORT használható megszakításra, de a leírtak alapján különbözik az INT az IOC-tól.
(#) Hp41C válasza cross51 hozzászólására (») Ápr 3, 2015 /
 
Történelmi oka van. Más típusokon csak az RB0 használható külső megszakításra. A 16F88x -en e lehetőség helyett az IOC modullal lehet megszakítást kérni mind a 8 biten.
Még egy apróság: Az IOC modul megszakítása esetén a portot li kell olvasni a megszakítás kiszolgálásakor és utána kell törölni az RBIF bitet.
(#) Hp41C válasza Hp41C hozzászólására (») Ápr 3, 2015 /
 
Helyreigazítás:
A 16F88x -en e lehetőség mellett az IOC modullal is lehet megszakítást kérni mind a 8 biten. Az IOC modul megszakítása esetén a portot ki kell olvasni a megszakítás kiszolgálásakor és utána kell törölni az RBIF bitet.
(#) lastewer hozzászólása Ápr 3, 2015 /
 
Ezt miért írja ki szerintetek ?
Idézet:
„0 1507 Unknown pragma line ignored: '' lcd.c”
Következő: »»   656 / 1208
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