Fórum témák

» Több friss téma
Fórum » PIC programozás
 
Témaindító: G-Lex, idő: Okt 24, 2005
Lapozás: OK   1 / 62
(#) G-Lex hozzászólása Okt 24, 2005 /
 
Hi!

Szeretnék megtanulni PIC icket programozni. Kezdéshez milyen ICn kezdjek?
Honnan tudok égetőt rendelni olcsón? az égető milyen típusú PICet tud programozni? mert gondolom vannak más tokozásúak, más lábkiosztásúak is. vagy nem?

Ja meg találtam egy fordítót ami PASCAL nyelvről fordít hex-be. Ezt használhatom, vagy nem célszerű. Csak azért lenne jó mert Delphiben programozom és a két nyelv nagyon közel áll egymáshoz.
(#) Norberto válasza G-Lex hozzászólására (») Okt 24, 2005 /
 
Halihó!

Először is neked, mint kezdőnek, ajánlanám a PIC16F627A és 16F628A jelű darabokat, mindkettő viszonylag sokat tud, könnyen meg lehet vele tanulni a "PIC-elést", és nem utolsó sorban nem kell egy hét után lecserélni, mert úgymond "kinövöd". Ez azért nem fog ilyen egyszerűen menni

A Pascal-os dologban nem tudok neked véleményt mondani, mert én nem azon a vonalon programozok...én maradtam az assembly-nél, mert az jó :yes:

De ettől függetlenül kipróbálhatod a Pascal-t is, nem lesz hátrányod belőle igazából.

Az égető témája:

van egy úgynevezett JDM nevű égető hardver, ehhez SMD kivitelben tudok neked adni ingyen alkatrészeket, és össze tudod rakni, ha ügyes vagy . Adsz egy postacímet privát üzenetben, én meg elküldöm neked az anyagot...persze PIC nem lesz benne, az azért drágább, és nincs is fölöslegben itthon

Ez az égető igazából soros úton programozza fel a PIC-eket, úgyhogy elvileg minden ismertebb és újabb PIC-et föl lehet vele programozni.
(#) csonthulye válasza G-Lex hozzászólására (») Okt 26, 2005 /
 
Hello! Programozot ne vegyel szerintem hanem csinalj! Tok egyszeru! Szerintem amugy PIC 16F84A-tipust hasznalj en is ezt tanulom epp suliba, es ez kezdoknek nagyon jo! Az egetohoz egy link:
http://propellerclock.uw.hu/picegeto.htm
Itt minden megvan ami hozza kell. Nem tul sok par ellenallas kondi meg dioda es kesz. Amugy a PIC16F84A ara kb. 900Ft Szerintem nem sok.Esetleg ha kell hozza reszletesebb leiras akkor irj es meg segithetek!
(#) G-Lex válasza csonthulye hozzászólására (») Okt 27, 2005 /
 
Hi!

Én tényleg full kezdő vagyok PIC téren. bár már régebben is gondoltam arra, hogy el kellene kezdenem. Amúgy nem is elektro szakon vagyok. programozónak tanulok. Elsősorban számítógépes vezérléshez szeretném használni.

Szóval akkor a következő kérdéseim lennének: Alapban miben tér el egymástól a 3 kontroller (PIC 16F84A,PIC16F627A,16F628A). Meg úgy alapban mi a különbség az ick között? Gondolom a program tárhelyében különböznek, de ezen kívül még miben? esetleg valamelyik ICnek más az utasítás készlete? vagy mindet ugyan úgy lehet programozni?

Égetőt meg azért nem akarok csinálni, mert most nincs meg rá a lehetőségem és az időm, hogy forrasztgassak...

Nekem az is jó lenne, ha valaki küldene postán egy felélesztett égetőt és én utánvéttel fizetném...
(#) bbatka válasza G-Lex hozzászólására (») Okt 27, 2005 /
 
Égetőnek a Propic2-t ajánlom. Rengeteg PIC-t támogat. Szoftware-nek pedig az ICprog-ot. Nagy Lászlótól meg tudod rendelni. Itt a címitt De ha a link nem működik akkor a www.elektronika.lap.hu oldalon balra alul találod meg.
A 16F84A egy régebbi típus, ezért nem támogat sokféle hardwares megoldást (PWM,USART,komparátor,...) + drágább.Általában a 16F84A-ra írt programok könnyen átírhatók 16F627A,16F628A-ra mert úgy emlékszem csak a tárhely cím kiosztásban különböznek. Erről többet asszem a www.chipcad.hu oldalon találhatsz "Áttérés 16f84-ről 16f627-re" Az utasítás készletük úgyanaz. Ahhoz hogy többet megtudhass a PIC-ről töltsd le az adatlapjaikat a www.microchip.com-ról.
(#) mspike válasza bbatka hozzászólására (») Okt 27, 2005 /
 
Szerintem ha irányítani akarsz vele és progot tanulsz akkor harapj nagyot, csinálj egy ICD2-t (kapcs itt fent van) és vegyél egy 18f452-es PICet... aztán szólj nekem elküldöm a C fordítót és C-ben tanulj picelni, két okból 1. sokkal komplexebb másik fele hogy neked szerintem az a "jövő" ha progizni tanulsz... a pascal jó tanuló nyelv de a C 1000* több "szabadságot" ad...
(#) G-Lex válasza mspike hozzászólására (») Okt 27, 2005 /
 
Hi!

Értem a C#-t is de mostanság inkább Delphiben dolgozom...
(#) G-Lex válasza mspike hozzászólására (») Okt 27, 2005 /
 
Hi!

Amúgy elolvastam a cikket de nem teljesen esett le, hogy most mire is kellene nekem annyira ez az ICD2. ha jól sejtem ez csak egy debuferr áramkör. vagy tévedek?
(#) bbatka válasza G-Lex hozzászólására (») Nov 8, 2005 /
 
Debugger. Talán nyomkövetőként fordítható magyarra, bár a tracer inkább az. Arra való hogy az MPLAB-ból valós idejű szimulációt végezhes. Úgyanis a szoftveres szimuláció néha igen lassú tud lenni. Az ICD2-t a számítógép soros portjára kell csatlakoztatni, majd az ICD2-höz kell csatlakoztatni a hardveredet. Az MPLABba töréspontokat tudsz elhelyezni, ahol megtudod állítani a program futást és le tudod kérdezni a regiszterek értékeit. Az ICD2 ICCSP programozóként is használható a 16f8xx és 18fxxx mikrovezérlőkhőz.
(#) G-Lex válasza bbatka hozzászólására (») Nov 9, 2005 /
 
Köszi! Így már értem. És olyat hogyan tudok csinálni, hogy ne csak 8 hanem mondjuk 128 bináris kimenetem legyen. vagy olyat, hogy mondjuk van egy vezérlő PIc és van több szolga PIc és a vezérlő adja az utasítást a szolgának, hogy mit csináljon. gondolom ez soros kommunikációval lenne a legjobb. mivel úgy csak 2 vezetéket kellene vezetnem.
(#) gogi válasza Norberto hozzászólására (») Nov 10, 2005 /
 
Tud valaki adni egy jól működő PIC égető kapcsolási rajzot, ami Xp-n is működik?
Norberto! Nem kaptál egy üzenetet?
(#) BrainDead válasza G-Lex hozzászólására (») Feb 7, 2006 /
 
hali.
nemrég kezdtem fogalkozni a mikrokontrollerekkel, és volna egy kérdésem aminek nem akartam új topikot nyitni, de asszem ide befér.

egy pic-es hőmérőt szeretnék összerakni a lehető legolcsóbban. az itteni kapcsolások között találtam egyet, de a ds1820 szenzor ára meglehetősen borsos. arra gondoltam, hogy gy termisztorral és egy kondival csinálok egy rc rezgőkört, majd az erről jövő jelet vezetem be az egyik lábon. az r a hőmérséklet függvényében változik, tehát a freki is változik.
és én ezt a frekvenciát akarom "mérni", de a szintén ezen az oldalon talált frekimérő asm kódja nekem nem igazán tiszta és a kapcsolás is elég ködös.

szóval addig értem, hogy beállítom a megfelelő lábat bemenetnek, de mi jön ezután? hogyan tudom "olvasni" azt a lábat?

talán valahogy úgy kéne, hogy minden órajelnél megnézem, hogy 1 vagy 0, és ha 1, akkor eggyel növelek egy regisztert és ha a regiszter megtelik, megnézem, hogy mennyi órajel telt el...
vagy nemtom...

elméleti hiánnyosságaim vannak, az biztos...
(#) petike válasza BrainDead hozzászólására (») Feb 7, 2006 /
 
Hello

Én a helyedben keresnék a sok száz fajta PIC közül egy olyat, aminek van A/D átalakítója, belső oszcillátora, és elegendő I/O portja. Szerintem arra kell törekedni, hogy a lehető legtöbb dolgot a PIC végezze el és a külső alkatrészek számát, ezzel a hibalehetőségeket minimálisra csökkentsük. Nézd meg a PIC16f676-os adatlapját, szerintem tuti volna hozzá, és 500 Ft körüli az ára.

üdv petike
(#) Norberto válasza BrainDead hozzászólására (») Feb 7, 2006 /
 
Én azt ajánlom, hogy DS1820 helyett használj valami más típusú hőmérős szenzort. Kicsit talán módosítani kell majd a programon, de 200-250 forintért lehet ilyen szenzorokat kapni.

Általam ajánlott típusok, amit én is használnék a helyedben:

- LM335

- KTY11-7

Ezek a szenzorok nem digitális jelet adnak ki, hanem analógot, amit valóban egy A/D átalakítóval lehet feldolgozni. Aztán hogy azt miképpen oldod meg; külső A/D átalakítóval, vagy PIC-en belülivel. Persze ehhez olyan PIC is kell, ami rendelkezik ilyen belső egységgel.

Ha van még további kérdésed, nyugodtan tedd fel. És egyáltalán nem baj, ha elméleti hiányosságaid vannak, ezért vagyunk mi itt, hogy ezeket a hiányos helyeket a tudatodban kitöltsük :yes:
(#) BrainDead válasza Norberto hozzászólására (») Feb 7, 2006 /
 
köszönöm a hozzászólásokat, de a kérdésem még mindig adott.
ha van egy rc rezgőköröm amiben "r" egy termisztor, és azt bekötöm a pic egyik lábára (mondjuk RB1), azt hogyan tudom "olvasni"?
egyszerűen movf portb és akkor w 1. bitje az aktuális érték a bemeneten?

kellene erre a termisztoros megoldásra valami ötlet vagy ilyesmi, mert nem biztos, hogy jó irányba indultam...
köszi
braindead
(#) Norberto válasza BrainDead hozzászólására (») Feb 7, 2006 /
 
A fő problémát az okozza, hogy az RC köröket nem szokás rezgőköröknek nevezni. A rezgőkör attól rezgőkör, hogy a feszültség vagy áram rezonál az őt alkotó "alkatrészekben". Tehát ha rezgőkörről beszélünk, akkor abban kell lennie, legalább egy kondenzátornak és legalább egy tekercsnek. Az ellenállás nem mindig kell, lehet az egy fogyasztó is akár. A rezgőkörben azért rezonál a feszültség pl. mert az energiatároló eszközök egymásnak "adogatják" át az energiát. ha áramot kapcsolunk rá, akkor a tekercs azonnal tárol magában egy kis energiát, amit majd a kondi töltésére fog felhasználni. A kondi töltése viszont nagyon hamar végbemegy, és amint azt tudni szokás, a tekercs a hirtelen fellépő változásokra nagyon érzékeny. Az energia tehát vándorol az L és C tag között.

A rezgőkör tehát egy ide-oda pumpálási folyamatot jelent, ami RC körben nem igazán lehetséges, mivel ha esetleg C tagban van is valamekkora energia, az az R tagon keresztül eltávozik, kiegyenlítődik, vagy disszipálódik, kapcsolástól függően.

De mindezektől függetlenül egy termisztorokban jártas egyén véleményét is szívesen látnám
(#) BrainDead válasza Norberto hozzászólására (») Feb 7, 2006 /
 
akkor bocsi a félrerthetőség miatt. valamiért úgy emlékeztem, hogy az RCt is így hívjuk.

csatolok egy gyorsan összedobott képet, hogy hogyan is képzeltem. bocsi a minőségért, de nincs tervezőprogramom...

szóval így nem fog valamiféle megszaggatott jel kerülni az RB1-re? mert ugye a kondi amíg nincs feltöltődve, addig vezeti a dc-t. aztán ha feltöltődött akkor nem, utánna meg az ellenálláson kisül és újra vezet....
vagy ha nem így van, akkor megint bocsi a sületlenségekért

rc.jpg
    
(#) petike válasza BrainDead hozzászólására (») Feb 7, 2006 /
 
Küldök egy doksit a TIMER modulokról. Ezekkel precízebben lehet megoldani az impulzusok számlálását.
(#) Kera_Will válasza BrainDead hozzászólására (») Feb 7, 2006 /
 
Ez jó 1 bekapcsolási tranziensnek ami pl resetet generál de semmi másra.

2 ellenállásos fesz osztóval és AD-vel már tudsz hőt mérni csak az a baj hogy a termisztor nem igazán lineáris mérőeszköz ... jó görbe ...
ezért inkább vmi más érzékelőt keressél ...ami lineárisabb ... vannak hőfüggő áramgenerátorok amik lineárisan változtatják áramukat a hőmérséklet változással n*10-100 mikroampernyit és ekkor 1 munkaellenálláson tud esni feszültség amit rá tudsz kötni az AD bemenetére.

HA meg felveszed a deltaR / deltaT karakterisztikát akkor ezt1 táblába rögzitve mérés korrekcióra használhatod pic forráskódjában a táblázatod eredményét.
(#) Norberto válasza Kera_Will hozzászólására (») Feb 7, 2006 /
 
De miért nem jó a legegyszerűbb megoldás?

Korábban felsoroltam 2 olcsó alkatrészt is (pl. LM335, aminek darabja 200 ft), amik 3 lábúak, és a 2 tápfesz. lábukon kívül a 3-dik lábukon feszültség mérhető, ami a hőmérséklettel arányos.

Ehhez már csak egy A/D átalakítós bemenetű PIC kell, és már kész is. A többi már csak programozás...
(#) BrainDead válasza Kera_Will hozzászólására (») Feb 7, 2006 /
 
hm....kezdek elkeseredni. azt hittem össze tudok hozni egy olcsó hőmérőt, de így tovább kell törnöm az agyam.
pedig mindenképpen valami olyasmi áramkör kellene ami hőmérsékletre változó frekijű jelet szolgáltat.

minenesetre leadtam a rendelést egy ds1820-ra a maximnál, ha máshogy nem jön össze (köszi deguss )

köszi az észrevételeket.

mégvalami: a hangkártyám bemenetét elvileg tudom használni hangfrekis jelek figyelésére is? mint egy oszcilloszkópot. ha igen, kiváncsi lennék néhány linkre ezzel kapcsolatban. progi kell csak hozzá nem?...
(#) st3 válasza BrainDead hozzászólására (») Feb 7, 2006 /
 
Szia!
Nézd megezt!
(#) BrainDead válasza Norberto hozzászólására (») Feb 7, 2006 /
 
hú. én nagyon kezdő vagyok még ahhoz, hogy A/D-vel tudjak foglalkozni, bár biztos vagyok benne, hogy itt segítségre találnék. meg talán a pic doksijában is van némi infó...

megnézem a 16f676-os adatlapját amit petike ajánlott
(#) BrainDead válasza st3 hozzászólására (») Feb 7, 2006 /
 
köszönöm. pont erre gondoltam.
(#) bbatka válasza BrainDead hozzászólására (») Feb 8, 2006 /
 
Most nem tudom hogy végül is sikerült-e megoldást találnod. Rezgőkörös mérést úgy tudsz végezni hogy egy NE555-ös IC-vel készítesz egy multivibrátort. Csak az ellenállás helyére valamilyen hőellenállást teszel. Így a hőfok függvényében változó frekvenciát kapsz. PIC-nek tulajdonképpen ezt a frekvenciát kell mérnie. Tehát RB0-ra kötöd az NE555-ös kimenetét és figyeled hogy érkezett-e megszakítás (interrupt). Ha érkezett akkor lekérdezed a TMR0 számláló értékét. A TMR0 számláló értékét hitelesíteni kell. És ha már meghatároztad hogy hogy milyen hőfokhoz milyen TMR0 érték tartozik akkor ki kell íratni egy LCD-re a hőfok értékét. Nem olyan bonyolult, de nekem is rámenne néhány napom, hetem a program megírására. Sajna most csak ennyit tudtam segíteni. Éppen más áramkörön dolgozok.
(#) BrainDead válasza bbatka hozzászólására (») Feb 8, 2006 /
 
köszönöm neked is. még nem ismerem ezt az ic-t - ahogy kismillió másikat sem - úgyhogy áttanulmányozom. az, hogy a termisztor nem lineáris, elég sok problémát vet fel, tehát elnapolom az efajta hőmérést és ds1820-as szenzorral oldom meg, az oldalon található példa alapján. (remélem a maxim tényleg küldi...)

ma rendeltem 16f84 és 16f676 kontrollereket, mindegyiket tanulnom kell még úgyhogy nem felejtem el ezt a topikot, de oszcillátor témában már nem írok, így is szét offoltam újonc létemre...

mindenkinek köszi.
braindead
(#) pakibec válasza Norberto hozzászólására (») Feb 10, 2006 /
 
Sziasztok!

Még tanulgatom a PIC programozást és elakadtam. (Nem akartam új témát nyitni, ezért ide írtam).

Tesztelni szeretnék egy áramkört, amely tudja az RS232-n keresztüli kommunikációt PC-vel. Annyi lenne a lényeg, hogy átküldi a PC terminálra, hogy "Testing.."

Mellékelem a programot, és a hozzá tartozó file-t, ennek nem tudom itt mi a neve, Pascalban az ilyesmit Unit-nak hívják.

A kérdésem, hogy mi a gond a programmal, miért nem kezeli a "unit"-ot? A hibákat valamennyire értem, de pl. hol kell egy cimkét definiálni? Miért nem látja a Status regisztrert?

Nagyon köszönök bármilyen segítséget!
(#) Norberto válasza pakibec hozzászólására (») Feb 10, 2006 /
 
Amikor lefordítod ezeket a fájlokat (ezek egyébként nem unitok, hanem már kész, önálló programok...egyszerűen csak forráskódnak kell nevezni) valamilyen fordítóprogrammal (ami a PIC nyelvére írja át az egész progit), akkor abban a mappában kell még lennie egy PIC16Fxxx.inc nevű fájlnak is. Ez tartalmazza ugyanis a PIC-ben lévő regiszterek neveit, és címeit. Szóval nagyon fontos, illetve nélkülözhetetlen kellék a fordításnál.

Pl. a "mark_1.asm" fájl elején van egy include-dal kezdődő sor, amiben le van írva, hogy a mappában milyen néven kell lennie egy, a PIC-hez tartozó fájlnak. Ezt a fájlt a netről biztosan le tudod tölteni több helyről, ha rákeresel, név szerint ebben az esetben a fájl nevét át kell írni erre: [B]p16f877.inc[/B]

A második fájlnak a végén (rs232) meg egyszerűen nem látok END utasítást, ami a programot lezárná
(#) pakibec válasza Norberto hozzászólására (») Feb 10, 2006 /
 
Nagyon köszönöm a segítséget.

Közben én is próbálkoztam, és végülis megy a fordítás. Csak annyit csináltam, hogy az Mplab-ban a score fájlok közül töröltem és az egyéb fájlok közé tettem a 2. filet. Talán az "include" miatt belefoglalja az elsőbe, és ezért nem hiányolta az end-et

Lényeg, hogy ez megy. Picsimulátorral csinálja amit kell, de sajnos a "valós" áramkörrel nem működik


A kapcs.rajzhoz adott terminállal (DOS alapú) próbáltam, xp alatt is megy, de kipróbáltam bootlemezről is. Folyton hibás karakterek jelennek meg a szöveg helyett, vagy csak a space fut, ez sem konzekvens. A Baud rate-et ellenőrizem. Az áramkör összeköttetéseit ellenőriztem...

Hogy lehetne elkülöníteni, hogy ez harver vagy szoftver hiba? Hogy tudnám beazonosítani a hibás alkatrészt?

kep1.jpg
    
(#) pakibec válasza mspike hozzászólására (») Feb 16, 2006 /
 
Sziasztok!

Tegnap voltam a Chipcadnél és a 18F452-ből van egy változat, ami 600 FT (!!!). Igaz csak 4 MHz-ig megy, de kit érdekel, tanulni tökéletes! Szóval mindenkinek ajánlom aki PIC progizással próbálkozik!
Következő: »»   1 / 62
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu