Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   853 / 1320
(#) accesid válasza trudnai hozzászólására (») Dec 8, 2010 /
 
Igen elirtam 32768hz es a megszakitasban eegyetlen bitet irok, ami a foprogrmban ha valtozott egy darab ledet kapcsol ki ill be, csak tesztprogram, mert azt hittem valahol a program hibazik....

Koszi valoszinu akkor a timer1 irasaval lesz a gond.
(#) jocking hozzászólása Dec 8, 2010 /
 
Hali!

Lenne egy amatőr kérdésem.

Egy ilyet szeretnék beszerezni:
Bővebben: Link
PICkit 2 starter kit. Ez ugye tartalmazza a PICkit-et meg egy próbapanelt ledekkel meg egy mikrokontrollerrel.

Az lenne kérdésem, hogy a panel a tulajdonképpeni "égető"? Vagyis úgy működik a dolog, hogy kiveszem a panelből a hozzáadott mikrokontrollert és beteszem azt, amit én szeretnék felprogramozni (16F628A)? Vagy létezik külön valami égető panel is?
(#) icserny válasza accesid hozzászólására (») Dec 8, 2010 /
 
Van a Timer1-nek még egy nagy baja, amit az Errata sem ír: egyes mikrovezérlőkön az aszinkron mód és a 16 bites írásmód nem fér össze. (Nekem PIC18F4550 és PIC18F87J50 estén gyűlt meg vele a bajom, más mikrovezérlőn nem teszteltem)
(#) pixels válasza accesid hozzászólására (») Dec 8, 2010 /
 
Üdv!

Ha a CCP modulod még nem használod, akkor rá lehet álítani a speciális eseményre a megszakítást.

Ilyenkor a CCP küld megszakítást, amikor a TIMER1 elérte a küszöbértéket, ami a CCP regisztereiben van, valamint nullázza a TIMER1-et.

Be kell állítani a CCP-nek a küszöbszintet 32768-ra, és engedélyezni kell a CCP special event trigger módját, és CCP megszakítást pont másodpercenként kapsz majd.

TIMER1 megszakítást nem is kell engedélyezned.
(#) icserny válasza jocking hozzászólására (») Dec 8, 2010 /
 
Idézet:
„Az lenne kérdésem, hogy a panel a tulajdonképpeni "égető"?”
Nem. Az egy próba panel, amelyből csak akkor veszed ki a mikrovezérlőt, ha tönkrement, vagy más típust akarsz kipróbálni. Ez a panel már tartalmaz 4 db LED-et, egy nyomógombot és egy potmétert, ezzel már sokféle eszközkezelést lehet próbálgatni. A 14 pólusú csatlakozóta bővítmények (PICtail kiegészítő kártyát csatlakoztathatók, az ún. prorotípus felületre pedig magad is építhetsz kiegészítést.

Az általad feltételezett programozási mód is használható, de nem egy felemelő élmény ebbe a foglalatba dugdosni a mikrovezérlőket (mely a 8, 14, és 20 lábúakkal kompatibilis, a 18 lábúakkal nem!), tehát csak végszükség esetén...

Ezen a képen talán jobban látszanak a részletek.
(#) Hp41C válasza pixels hozzászólására (») Dec 8, 2010 /
 
Szia!

Egy apró dolog: A CCP modul csak a timer1 szinkronizált módjában működik helyesen, az meg nem működik sleep üzemmódban....
(#) jocking válasza icserny hozzászólására (») Dec 8, 2010 /
 
Értem. Vagyis ilyen égető panelt külön lehet kapni? Mert arról még csak képet sem találtam sehol.
(#) balogpepe hozzászólása Dec 8, 2010 /
 
Sziasztok!

C18-ban dolgozom, és egy float 4 bájtját szeretném áttölteni egy karaktertömbbe, mindenféle konvertálás nélkül, hogy aztán elküldjem uarton, de nincs ötletem hogyan lehetne! Ebben kérnék segítséget! Előre is elnézést ha túl egyszerűt kérdeztem, de még kezdő vagyok.
(#) jocking válasza icserny hozzászólására (») Dec 8, 2010 /
 
Na várjunk csak...
Tehát ez lenne az, ami nekem kell?
http://www.conrad.hu/conrad.php?name=Products&cid=214037&pid=191486...tail=1
És ha beszerzek egy ilyet, akkor a PICkit 2 elvileg nem is szükséges? Csak ezt rádugom a soros portra és lehet is programozni a PIC-eket?
(#) vicsys válasza jocking hozzászólására (») Dec 8, 2010 /
 
Nem. Neked kell egy pickit2 és semmi más. Azzal már tudsz égetni és még 1-2 izgalmas dolgot csinálni...
(#) jocking válasza vicsys hozzászólására (») Dec 8, 2010 /
 
Akkor legalább elmondanád, hogy PICkit 2-vel hogy égetek programot egy 16F628-as PIC-be? Mert pár hsz-szel feljebb meg azt írták, hogy nem oldható meg könnyen.
(#) nedudgi válasza jocking hozzászólására (») Dec 8, 2010 /
 
Egy PIC-et úgy égethetsz, hogy az áramkörödben a programozó lábakat egy tüskesorra kivezeted, amire rádugod a PICKIT-et.
(#) vicsys válasza jocking hozzászólására (») Dec 8, 2010 /
 
Keress rá a varázs szóra:ICSP.
Itt van 1 kis segítség:Bővebben: Link
(#) jocking válasza vicsys hozzászólására (») Dec 8, 2010 /
 
Bocs, de nekem ez kínai.
Ezt építettem meg:
Bővebben: Link
Minden kész van 100%-osan, már csak a PIC-be kéne beleégetni a leírásban található .HEX file-t.
Vagy a 16F628-nál is ezekre a lábakra kell kötni a PICkitet? Tehát VPP-RA3, PGD-RA0, PGC-RA1 és VDD-+5V (esetleg VSS- -5V?) ?
(#) vilmosd válasza balogpepe hozzászólására (») Dec 8, 2010 /
 
Hali
Structura es union hasznalataval.
Csa Vili
(#) icserny válasza jocking hozzászólására (») Dec 8, 2010 /
 
Idézet:
„Vagyis ilyen égető panelt külön lehet kapni?”
Ha nem tömegtermelésről van szó, akkor a céláramkörben történő programozás (ICSP) az elterjedt. Ha valakinek az a mániája, hogy mégis külön panelben akarja égetni a mikrovezérlőt, akkor ZIF foglalatot szokás használni. Bővebben: Link
(#) jocking válasza icserny hozzászólására (») Dec 8, 2010 /
 
A fentebbi hsz-ekben már eljutottunk az ICSP-ig, csak az nem tiszta, hogy minden PIC-nél ugyanazokra a lábakra kell e kötni a PICkit kimeneteit. Mert egy link alapján a 12F675-ös PIC-nél a bekötési pontok: VPP-RA3, PGD-RA0, PGC-RA1 és VDD-+5V. Csak az a kérdés, hogy 16F628-nál is az RA0, RA1, RA3 és VDD lábakat kell e használni a programozáshoz.
(#) balogpepe válasza vilmosd hozzászólására (») Dec 8, 2010 /
 
Kedves vilmosd!
Köszönöm a gyors választ! Megnéztem mire jó ez struct és union, ha jól értelmezem pl.: a PORTA bitjeire tudunk hivatkozni a segítségével. Azt viszont nem tudom hogyan segíthet ez rajtam.?
(#) watt válasza jocking hozzászólására (») Dec 8, 2010 /
 
Talán meg kéne nézni az adatlapban!
(#) watt válasza balogpepe hozzászólására (») Dec 8, 2010 /
 
Miért kell áttöltened, miért nem küldöd el egyből a változóból bájtonkén? (<<, >> operátorokat nézd meg mire való)
(#) vilmosd válasza jocking hozzászólására (») Dec 8, 2010 /
 
Hali
Ha varsz mig megreggelizem es feloltozom, kuldok egy doksit a PK2-hoz valo programozo foglalatrol. Egyszeru mint egy faek, belerakod a PIC-et, feldugod a PK2-re, es porkolhetsz is. Ezt a Conrados panelt felejtsd el. Egyebkent a panelon egy RS232 programozo van, ezt viszont mar nagyon sok PC hianyolja. Ha szetnezel itt a forumon, talasz 18 es 20 labasokhoz probapanelt. Megcsinalod (megcsinaltatod) valakivel, veszel egy PK2-t es mar mehet is a gyakorlas.
Csa Vili
(#) balogpepe válasza watt hozzászólására (») Dec 8, 2010 /
 
Próbáltam shiftelgetni, a shift operátor csak integer tipusú változókra használható, ha jól értelmeztem a fordító hibaüzenetét. Azért nem tudom onnan küldeni mert többet fűzök fel és egyben kell küldenem.
(#) balogpepe hozzászólása Dec 8, 2010 /
 
Úgy néz ki a memcpy() megoldotta a problémát, de valahogy nem teljesen az IEEE-754 szabvány szerinti hexadecimális értéket kapom vissza... A gyakorlatban ez úgy néz ki, hogy 2 bájt megegyezik azzal, 2 meg nem.
(#) jocking válasza vilmosd hozzászólására (») Dec 8, 2010 /
 
Hali!
Akkor várom azt a dokumentumot, aztán meglátjuk, mi lesz belőle.
Előre is thx.
(#) icserny válasza jocking hozzászólására (») Dec 8, 2010 /
 
Idézet:
„csak az nem tiszta, hogy minden PIC-nél ugyanazokra a lábakra kell e kötni a PICkit kimeneteit.”

Nyilvánvalóan nem. Az adatlapból kell megnézni, hogy melyek az MCLR, VDD, VSS, PGD és PGC lábak. A PGD és PGC némelyik adatlapban ICSPDATA és ICSPCLK néven szerepel.

Alkalmi megoldásként így is lehet programozni, csak ne felejtsd le az MCLR 10 kohm-os felhúzó ellenállását és a VDD-VSS közé szükséges 100 nF-os kondenzátort!
(#) p_istvan válasza balogpepe hozzászólására (») Dec 8, 2010 /
 
Szervusz néz utána jobban.
Alapvetően két dologról van szó a struct és union esetében.
Neked az unionra van szükséged: különböző típusú változok deklarálhatók ugyanarra a memóriaterületre. Tehát a floatot és a 32 bites integert egy unionba foglalod. Majd a floatnak adsz értéket és az integert küldöd.
A vételnél meg fordítva kell eljárni.
(#) Hp41C válasza balogpepe hozzászólására (») Dec 8, 2010 /
 
Szia!

Inkább csinálj egy (byte *) utatót a float típusú változóra:
  1. float f;
  2. byte* ptr;
  3. ptr = (byte*)&f;
(#) balogpepe válasza Hp41C hozzászólására (») Dec 8, 2010 /
 
Szia!

Megcsináltam ahogy írtad, és mostmár a helyes értéket kapom meg! Nagyszerű, köszönöm a segítséget! Azt meg nem értem, hogy a memcpy() miért nem ezt adja vissza.
(#) vilmosd válasza balogpepe hozzászólására (») Dec 8, 2010 /
 
Hali
Itt egy pelda struct, union varira:
  1. union float_int
  2. {
  3.         float v_float;
  4.         int v_int[4];
  5. } float_int;
  6. int i; 
  7. void main(void)
  8. {
  9.         float_int.v_float=123.4567;
  10.         for(i=0;i<4;i++)
  11.         {
  12.                 printf("%u",float_int.v_int[i]);
  13.         }      
  14.         .
  15.         .
  16.         .
  17. }
Csak arra kell vigyazni, hogy a MCHP float es az IEEE754 float formatuma nem egyezik meg, es a PC maskepp ertelmezi a soroson bekuldott MCHP formatumu float-ot.
Csa Vili
(#) vilmosd válasza jocking hozzászólására (») Dec 8, 2010 /
 
Hali
Az igert doksik
Következő: »»   853 / 1320
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