Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1097 / 1320
(#) nem válasza nem hozzászólására (») Okt 1, 2012 /
 
Ennek a 18. oldalán lévő táblázat szerint adjak VSS re és VDD re szokásos 0-t és 3V-ot és mondjuk a REF- lábra adjal 2 V-ot és akkor 2..3V volt ADzik, igaz?
(#) watt válasza nem hozzászólására (») Okt 1, 2012 / 1
 
Az analog GND-nek nem szabad eltolva lennie a digitális GND-től, csak az adatlapban megadott mértékig(gyakorlatilag semennyire). Az AD eltolást a referencialábakon kell beállítani, szintén az adatlapban szereplő korlátok között!
A hozzászólás módosítva: Okt 1, 2012
(#) Hp41C válasza nem hozzászólására (») Okt 1, 2012 / 1
 
Sziasztok!
Ne felejtsetek el ellapozni az elekromos paraméterek fejezethez, és megnézni a ΔVREF Reference Voltage Range (VREFH – VREFL) paramétert. Általában 1.8 ... 3.0V ΔVREF kell az A/D átalakítónak a megadott 10 (12) bit felbontáshoz.
(#) nem válasza watt hozzászólására (») Okt 1, 2012 /
 
Értem, köszönöm!
Sajnos nem találom, mik azok a korlátok, amik közt el lehet tolni a dolgot, ha esetleg tudnál mondani egy oldalszámot egy adott adatlapon, az jó volna.

Köszönöm!
(#) nem válasza Hp41C hozzászólására (») Okt 1, 2012 /
 
Ahha. Hát, akkor magyarul érdemes belőni úgy, hogy a számomra hasznos jel legyen a beállított tartomány közepe, és a tartomány "szélessége" pedig 1.8 V legyen kb...

Még egy dolog ezzel kapcs.: Vajon mekkora (valószínűleg le van valahol írva, de én nem találtam meg) a PIC ref lábainak a belső ellenállása? Kell neki egy fesz.követős kapcsolás, vagy lehet neki adni sima feszültségosztót is (100k nagyságrendű ellenállásokkal az táp-elem kímélése végett)?

Köszönöm!
(#) _vl_ válasza nem hozzászólására (») Okt 1, 2012 /
 
Pl. 32MX1xx/2xx data sheet 61186D 274. odala (ADC modul specifikáció).
(#) watt válasza nem hozzászólására (») Okt 1, 2012 /
 
Egy pontos, stabil referencia IC-re szükség van, abból lehet osztani ellenállásokkal(1%fémréteggel). Érdemes hidegíteni a pontokat a lábhoz közel(100n kerámia). Kisebb hibákat lehet korrigálni a programban is. Az analog testet külön úton vidd a PIC-hez és csak egy ponton kösd össze a digitálissal ott, ahol a legkevesebb a zaj. Lehet próbálkozni 10ohm körüli ellenállás beiktatásával. Ha végül nem kell legfeljebb átkötést teszel.
(#) netnet.hu hozzászólása Okt 2, 2012 /
 
Helló!
Ugyan már el lett egyszer régen magyarázva, de elfelejtettem.

Hogyan tudom kiszámolni, hogy mennyi idő 1 instrukció végrehajtása? Jelenleg 16 MHz-en fut a PIC18F14K22-m és tudnom kéne, hogy mi mennyi fizikai időt vesz igénybe rajta.
Odáig azt hiszem ok, hogy 16Mhz/4=4Mhz az 1 instrukcióra jutó feldolgozási idő (kivéve goto és egyesparancsok), de ha ez helyes is, hány ms vagy us az a 4 MHz?
(#) nem válasza netnet.hu hozzászólására (») Okt 2, 2012 / 1
 
Nem tudom a kérdés tényleg arra vonatkozik-e, amire válaszolok, de 1 [Hz] az [1/s], tehát 1 [MHz], az egy milliomod [s], magyarul 1 [us] (mikrosec.), 4 [MHz] pedig 1/4millió [s], tehát negyed mikrosec., másként 0.25 [us], másként 250 [ns] (nanosec.).. de lehet, hogy nem errre voltál kíváncsi
A hozzászólás módosítva: Okt 2, 2012
(#) proba válasza netnet.hu hozzászólására (») Okt 2, 2012 /
 
4Mhz = 4000000 órajel /sec . tehát 1 órajel 1s/4000000
(#) netnet.hu válasza nem hozzászólására (») Okt 2, 2012 /
 
Köszönöm. Megspóroltad a fáradt, reggeli agyamnak, hogy el kelljen olvasnia a másodperc tört részeit és csomó mindent a microchip fórumban, hogy rájöjjek az egyértelműre
(#) lokátoros válasza netnet.hu hozzászólására (») Okt 2, 2012 /
 
Szia,
T =1/f vagyis 1/4e6 = 0.25usec
(#) netnet.hu hozzászólása Okt 2, 2012 /
 
Akkor most jön a következő kérdés, hogy pontosan tudjak számolni:
  1. void XLCDDelay(void)
  2.     {
  3.     int i;
  4.     for(i=0;i<1000;i++)
  5.         {
  6.         Nop();
  7.         }
  8.     return;
  9.     }


Jól számolom, hogy itt van 1000x250ns nop+ 1x250 az int i; + a void is 250ns? Azaz össz 250500 ns (250,5 us)?

(#) potyo válasza netnet.hu hozzászólására (») Okt 2, 2012 / 1
 
Ezt inkább szimulátorban próbáld ki, mert ez nem ilyen egyszerű. Előszöris van az i++, ami kb. négy utasítás, azután van az, hogy i<1000, amit hasracsapva minimum szintén négy utasítás, a Nop() egy utasítás, és a ciklus végéről az elejére ugrás meg egy BRA lesz, ami egy utasítás, de két ciklus. És ez az egész fut le ezerszer. Szóval ez nagyon szűken számolva is 1000x11 utasításciklus lesz. Az int i az nem plusz utasítás, az i=0 az két utasítás lesz, a void és a végén visszatérés az egy CALL és egy RETURN, vagyis mindkettő egy-egy kétciklusos utasítás.

Legjobb ezt szimulátorban megnézni, mert a fordító optimalizálásától is függhet a dolog. Teszel egy-egy magszakítási pontot a for és a return sorokra, amikor a for sorra ért a futtatás, onnan leveszed, nullázod az órát és futtatod a returnig. MPLAB SIM-ben szépen látható>
(#) netnet.hu válasza potyo hozzászólására (») Okt 2, 2012 /
 
Nem tudom milyen órát.

Én eddíg csak a PICKit2-vel debuggoltam és azzal is csak azért, hogy lássam, jól mennek-e az adatok a változókba. A View => Watch az egyetlen óra amit ismerek és abban nem tudom, hol van idő.
(#) potyo válasza netnet.hu hozzászólására (») Okt 2, 2012 / 1
 
Debugger->Stopwatch. Előtte be kell állítani az órajelet valahol ott a Debugger menű alatt.
(#) beigli767 hozzászólása Okt 3, 2012 1 /
 
Hello!

Azt szeretném megtudni, hogy a p18f6722-es pic mikrokontrolleren az RE lábakon tudok e nyomógombokkal megszakítást előidézni?
Előre is köszönöm a válaszokat!
(#) bbalazs_ válasza beigli767 hozzászólására (») Okt 3, 2012 /
 
Adatlap, interrupt schematic. Ha ott fel van tuntetve, akkor igen.
De igy latatlanban nem.
Menurendszer eseten egyebkent szerintem a megszakitas inkabb hatrany, mint elony (mivel lattam, hogy masik topicban is kerdezted ugyanezt).
Miert nem jo a pollozas?
(#) beigli767 válasza bbalazs_ hozzászólására (») Okt 3, 2012 /
 
Pollozáson még nem gondolkoztam. De lehet úgy oldom meg, nem tudom. Most jutottam el idáig hogy menürendszert kell csinállni, és fogalmam sincs jelenleg, hogy ezt hogyan programozzam le.
(#) bbalazs_ válasza beigli767 hozzászólására (») Okt 3, 2012 /
 
Akar megszakitasban is pollozhatsz.
Fontos tudni, hogy a menu alatt kell-e valami mast is csinalnia a cuccnak. Ha nem, akkor hott' egyszeru: elkuldod pollozni foprogramban, addig nem ter vissza, amig le nem utottel valamit (pergesmentesitesre figyelj).

De szerintem ezt inkabb a kezdokben kellene megtargyalni.
A hozzászólás módosítva: Okt 3, 2012
(#) watt válasza beigli767 hozzászólására (») Okt 3, 2012 /
 
Ritka, mikor a gomb lekezése nem várhat, azaz ne lehetne megszakítani a pollingozást. Ezért szinte mindig a fő hurokban kap szeletet a billentyűkezelés. Ha közben van valami fontosabb, azt a megszakításba kell rakni. A megszakításban nem illik sokat időzni, ezért nem kell félni, hogy lemaradsz egy gombnyomásról.
(#) vilmosd válasza beigli767 hozzászólására (») Okt 3, 2012 / 1
 
Nalam ugy szokott tortenni, hogy pl TMR0 IT jon 10 (20) mS periodussal. Van ket valtozom a gombok kezelesere. Eloszor egyenlove teszem a ket valtozot. Az IT-ben beolvasom a portot egy valtozoba, es megnezem hogy az uj beolvasas egyezik-e a regivel. Egyenloseg eseten nem volt valtozas a gomboknal, tehat kilepek, viszont ha nem egyezik, akkor piszkaltak a gombokat. Akkor eldontom melyik biten volt valtozas, es ezt eltarolom egy ujabb valtozoban, majd egyenlove teszem a oreg_gomb valtozot az uj_gomb valtozoval. Ezt csinalom periodikusan. Bonuszkent egy plusz szamlaloval meg lehet oldani a prellmentesitest. C -re esetleg van peldam.
A hozzászólás módosítva: Okt 3, 2012
(#) icserny válasza vilmosd hozzászólására (») Okt 3, 2012 /
 
Én nem szoktam ennyit finomkodni, a 20 ms-os mintavételezés az általam használt nyomógomboknál megoldja a pergésmentesítést is.
(#) fredandjoe hozzászólása Okt 3, 2012 1 /
 
Sziasztok!
Ne haragudjatok, hogy ha már feltették ezt a kérdést mások, de most nem tudtam a topic összes 33042 hozzászólását elolvasni.
dsPIC30F2020-at szeretnék felprogramozni, de nem látja meg az égető.
De nem foglalom a helyet, mert itt már leírtam:
Bővebben: Link
Előre is köszönöm a segítséget!
(#) beigli767 válasza vilmosd hozzászólására (») Okt 3, 2012 / 1
 
Egy c példa jól jönne. Amúgy jól hangzik a megoldásod.
(#) vilmosd válasza fredandjoe hozzászólására (») Okt 3, 2012 / 1
 
En CCS C nyelvjarast hasznalok.
  1. #int_TIMER0  
  2. void clock_isr()
  3. {                                              
  4.     set_timer0(100);                
  5.         rtccif=0;
  6.           if (sampleb)
  7.           {
  8.                 sampleb--;
  9.           }
  10.     }
  11.     butt_in=~port_b;
  12.         n_butt=botton(butt_in);
  13.         if((o_butt==n_butt)&&n_butt&&!sampleb)
  14.         {
  15.                 switch (n_butt)
  16.                 {
  17.                         case1:
  18.                         .
  19.                         .
  20.                         default:
  21.                 }
  22.                 sampleb=SAMPLET;
  23.         }
  24.         if (o_butt!=n_butt) sampleb=SAMPLET;
  25.         o_butt=n_butt; 
  26. }
A mellekletben levo botton() fvenyt hivja, ami visszaad egy erteket a lenyomott gombtol fuggoen. A maszkkal be lehet allitani, mely labakat vizsgalod.

bott.h
    
(#) Attila86 hozzászólása Okt 5, 2012 /
 
Idézet:
„Error - file './PIC-es panelmero II-III.o', section 'PGM', Symbol 'kisebb_mint_10.000.000' out of range of relative branch instruction.
Errors : 1

Ennek nem kellett volna eltűnnie azzal hogy a bra-t kicseréltem goto-ra?
(#) Attila86 válasza Attila86 hozzászólására (») Okt 5, 2012 /
 
Így:
  1. bc              kisebb_mint_10.000.000
  2. bra             nem_kisebb_mint_10.000.000
ebből ez lett:
  1. btfsc   STATUS, C
  2. goto    kisebb_mint_10.000.000
  3. goto    nem_kisebb_mint_10.000.000


Szerk.:
Megjavult tőle, csak volt egy ilyen ugrás a program más részén is, amit nem írtam át.
A hozzászólás módosítva: Okt 5, 2012
(#) nedudgi válasza Attila86 hozzászólására (») Okt 5, 2012 /
 
Nekem ezek a pontok gyanúsak a cimkében.
(#) Attila86 válasza nedudgi hozzászólására (») Okt 5, 2012 /
 
Pedig tökéletesen működnek.
Következő: »»   1097 / 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