Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1000 / 1319
(#) pixels válasza Attila86 hozzászólására (») Júl 14, 2011 /
 
Sajna ez van, figyelni kell az ilyenekre. Annó nekem is rengeteg időt vett el a 16F szérián a PORTB - TRISB, meg az ehhez hasonlóan ugyanazon címen, csak más bankban lévő regiszterekkel, mikor elfelejtettem egy helyen bankot váltani.
(#) treshold válasza watt hozzászólására (») Júl 14, 2011 /
 
"debug módot törölni a config-ban"
Ez hol van konkréten, melyik fülben, mert így nem találom
(#) trudnai válasza treshold hozzászólására (») Júl 14, 2011 /
 
A mellekelt kepen levo dolgokat -- es az akorul levoket -- nyalazd velgig...

PIC24H - Section 25. Device Configuration
(#) treshold válasza trudnai hozzászólására (») Júl 14, 2011 /
 
Ezt beállítottam az elején

config __ICS_PGD1 ; communicate on PGC1/EMUC1 and PGD1/EMUD1

Kell még valamit beállítani?
(#) icserny válasza treshold hozzászólására (») Júl 14, 2011 /
 
Idézet:
„Ezt beállítottam az elején config __ICS_PGD1 ;”
Nálam ez így néz ki:
  1. _FICD( JTAGEN_OFF & ICS_PGD1);
(#) treshold válasza icserny hozzászólására (») Júl 14, 2011 /
 
Beállítottam a JTAH-ot is.

Ez az alapbeállításom:

.include "p24HJ64GP206A.inc"
config __FOSCSEL,FNOSC_PRIPLL
config __POSCMD_EC
config __FWDT, FWDTEN_OFF
config __ICS_PGD1 ; debug-oláshoz kell
config __JTAGEN_OFF

Méh mindíg valami nem ok.
LEhet, hogy csak valahogy el kellene indítanom. A leírás valami break pontot ír meg hogy futtassam a RUN-t.
Ezt is próbáltam, de lehet, hogy nem jól csinálok valamit

Az adatmemóriát akarom kiolvasni, miután infra porton beküldtem a jeleket.
MPLAB SIM-mel OK volt. A szerkezet apró hibával de működik, tehát bekerülnek az adatok.
(#) treshold válasza treshold hozzászólására (») Júl 14, 2011 /
 
JTAGEN_OFF-ot akartam írni, hogy beállítottam
(#) Hp41C válasza sz_ferko hozzászólására (») Júl 14, 2011 /
 
Szia!

Csak az inicializáló részt kell átírni három ok miatt: - itt nem a banksel macro -t használta a szerző, - a 16F628(A) csak 4 MHz -es belső órával rendelkezik, - A 16F628(A) -nál nem az ANSEL regiszter törlésével kell digitális módba kapcsolni a A portot, hanem a CMCON regiszterbe 7 írásával....
A többi programrészben nem kell változtatni... Az eeprom kezelés is jó lesz a 16F628(A)-n mivel minden regiszter elérés előtt ott a banksel...
(#) szepesg válasza G-Lex hozzászólására (») Júl 15, 2011 /
 
hello!

miért van az, hogy pic24-gyel az MPLAB IDE 8.63 rendesen megy (ha a linker file-t) belepakolom a projektbe, de a pic32-vel nem?
előre is kösz a segítséget.

szepesg

Tisztelj meg minket a nagybetűk használatával, kérlek! --vicsys
(#) szkkteam hozzászólása Júl 15, 2011 /
 
Sziasztok!

Igazából nem tudom, hogy jó helyre írom-e kérdésem, de mást nem találtam.
Van egy Panasonic SD420-as videólejátszom, aminek kieszedtem az infráját. Ezt rákötöttem a PIC-emre, müködik is. A távirányítójától fogja is a jelet. Mivel oszcilloszkópom nincs ezért az RB0- port segítségével szerettem volna megnézni, hogy milyen jeleket küld.
A kódom:
  1. while(1){
  2.         if (c){
  3.               printf("%d",RB0);
  4.               c = 0;
  5.         }
  6. }
  7.  
  8. interrupt void isr(void){
  9.         if (INTF){
  10.                 INTF = 0;
  11.                 INTEDG ^= 1;
  12.                 c = 1;
  13.         }

Ez egy PIC16F887-es, Hi-tech C fordítóval. Az eredményt UART-on küldi ki a PC-nek,
nos ilyen eredmények jönnek:
1-ik gombra:
01001000000000000100000001000100000000001001000000100101000101
azonos gombra, azonos kódsorozat jön, a többire meg mindig változik, az első 39 bit az marad, gondolok itt arra, hogy az lehet a távirányító azonosítója, vagy akármi.
De az lenne a kérdésem, hogy hogyan küldhet több db 0-át vagy 1-est egymásután, amikor az RB0 minden megszakításánál, változik, hogy felfutó, vagy lefutó élre érzékel (INTEDG ^= 1) rész. Nem értem, hogy akkor hogyan lesz 2 nulla, weak-pull up nincs.
(#) Hp41C válasza Hp41C hozzászólására (») Júl 15, 2011 /
 
Itt a forrás 16F627(A), 16F628(A), 16F648A, 16F87, 16F88 -ra is fordítható változata..
(#) janikukac hozzászólása Júl 15, 2011 /
 
Sziasztok!

Keresek Árammérésre szolgáló PIC-es áramkört, aminek van forrása is, hogy át tudjuk alakítani PIC16F873-ra. Amit tudnia kéne, az annyi, hogy Áramot mére, max 1A terhelés alatt 4db 7 szegmenses kijelzőn.
(#) Hp41C válasza janikukac hozzászólására (») Júl 15, 2011 /
 
Szia!

A PIC a +Vref és a -Vref közötti feszültséget alakítja át a 0 .. 1023 digitális értékre. A kellő pontossághoz azonban min. 3.5V feszültség különbség kell. Ez a feszültség sokkal nagyobb annál, amit az ampermérőkön szokott esni. Ahhoz, hogy lényegesen ne zavarjuk meg a mérendő áramkört, max. 0.1 V -os felszültséget engedhetünk meg az érzékelő ellenálláson 1A esetén. A mérőellenállás tehát 0.1 ohm. Ezt a feszültséget kell pl. a 0..5V -ra felerősíteni. Az erősített jel mehet a PIC analóg bemenetére. A mérő ellenállásanak max 0.1% -osnak kell lennie és az erősítőt 0.1% -os tűrésű alkatrészekből kell megépíteni. A másik probléma a zavarok kiszűrése. A 0.1V 10 bites felbontású méréséhez kb. 0.1mV zajzintet kell eléreni a mérőkörben
.
(#) Hp41C válasza szkkteam hozzászólására (») Júl 15, 2011 /
 
Szia!

Próbáld meg megcserélni:
  1. interrupt void isr(void){
  2.         if (INTF){
  3.                 INTEDG ^= 1;
  4.                 INTF = 0;
  5.                 c = 1;
  6.         }
(#) Ideiglenes válasza janikukac hozzászólására (») Júl 15, 2011 /
 
Kicsit vicces,de a kezdőoldalon valami ilyet láttam:
PIC-es panelmérő
(#) janikukac válasza Ideiglenes hozzászólására (») Júl 15, 2011 /
 
Nem vicces, ehhez nem fogok neki, ez több 10 ezres cucc, és nekem csak A mérés kell, ez meg mindent mér, feszt, ellenállást, stb..
(#) watt válasza janikukac hozzászólására (») Júl 15, 2011 /
 
Javaslom inkább a PIC Kezdőknek topicba írj, ott lehet, hogy jobban elviselnek! Gondolom Hp41C írása is csak üresen cseng a füledben. Kész áramkört ne várj itt, hacsak Hp esetleg nem tervez neked és nem írja meg a programot.
(#) janikukac válasza watt hozzászólására (») Júl 15, 2011 /
 
[OFF] Ok, sajnálom, kezdő vagyok, de törekszem........
(#) Attila86 hozzászólása Júl 15, 2011 /
 
Nem igaz hogy folyton tök alapvető problémákba ütközöm ezzel a PIC18F26K80-al...
INT2-vel szeretnék megszakítást generáltatni. A lábat egy nyomógombra kötöttem aminek a másik vége a GND-n van. Ellenállás-spórolás végett bekapcsoltam a lábra a belső felhúzóellenállást és így állítottam be a dolgokat:
  1. movlw   b'00001111'            
  2.         movwf   TRISB                   ;RB0, RB1, RB2 és RB3 bemenet lesz
  3.         movlw   b'00001111'
  4.         movwf   WPUB            ;RB0, RB1, RB2 és RB3 lábakra a felhúzóellenállások bekapcsolása
  5.         clrf    INTCON
  6.         bsf             INTCON3, INT2IE         ;INT2 megszakítás-engedélyezése
  7.         bcf             INTCON2, INTEDG2        ;INT2 megszakítás lefutó élre történjen
  8.         bsf             INTCON, PEIE            ;periféria-megszakítás engedélyezve
  9.         bsf             INTCON, GIE                     ;globális megszakítás engedélyezés

Ha nyomom a gombot ha nem, nem történik megszakítás. Debuggerben megnéztem az INTCON és az INTCON3 regisztereket hogy tényleg az van-e bennük amiket beállítottam, az van. Megnéztem hogy egyáltalán a PIC érzékeli-e magát a jelszint változást a lábon, ezért ránéztem a Watch ablakban a PORTB regiszterre, de sajnos nem. Ekkor elővettem egy multimétert és rámértem az INT2 lábra amikor nincs benyomva a gomb, de L szint van rajta! Hogy lehet, hiszen bekapcsoltam a felhúzóellenállásokat!?
Ekkor kezdtem gyanakodni a debuggerre, hiszen a napokban ugyebár már tapasztaltam a hülyeségeit. Ezért próbaképp az INT2IF flagbitet 1-re állítottam majd továbbléptettem a programot, de nem lépett be megszakításba. Globális megszakítás (GIE), periféria-megszakítás (PEIE) és INT2 megszakítás-engedélyezés (INT2IE) bitek továbbra is 1-ek.
Közben a jelen problémától függetlenül a CCP3 megszakítás is működik a programomban, szerencsére az teljesen jól. Ezért gondoltam 1-re állítom a Watch ablakban a CCP3IF bitet is hogy akkor belép-e a megszakításba. De nem, akkor se! Szóval a debugger tuti megint bolond, de nem ez a hiba oka persze. Hanem szerintem az hogy valamiért még sincsenek bekapcsolva a felhúzóellenállások.

Ha otthon lennék (most épp dolgozom) akkor adnék a lábra külső H-szintet és rögtön kiderülne hogy a felhúzóellenállások a ludasak vagy maga a láb nem akar bemenetként működni, vagy esetleg a megszakítás nincs jól beállítva az INT2-re. De mivel nem vagyok otthon, viszont nagyon idegesít a probléma így megkérdezlek titeket a dologról.
(#) Attila86 válasza Attila86 hozzászólására (») Júl 15, 2011 /
 
Meg is van a hiba egyik fele, ez még hiányzott:
  1. bcf             INTCON2, RBPU

Most már H szint van a lábon a Watch ablak és a multiméter szerint is. A gomb benyomására pedig L lesz a debuggerben, de az INT2IF bitet nem állítja 1-re sajnos. Miért?
(#) trudnai válasza Attila86 hozzászólására (») Júl 15, 2011 /
 
RBPU-t beallitottad? INT2IP mire van allitva? Hasznalsz egyaltalan megszakitas siznteket?
(#) Attila86 válasza trudnai hozzászólására (») Júl 15, 2011 /
 
Az RBPU most már 0. INT2IP 1-re van állítva, minden megszakítás magas szintű lesz majd.
  1. ;*************** VEKTOROK ******************   
  2. RST CODE 0x0000
  3.         goto    START1
  4. HI_VEC  CODE 0x0008
  5.     goto        hi_isr
  6. LO_VEC  CODE 0x0018
  7.     goto        hi_isr
(#) trudnai válasza Attila86 hozzászólására (») Júl 15, 2011 /
 
Akkor meg annyit probalj meg, hogy a PORTB-t kiolvasod meg mielott a megszakitast engedelyezed. Ja es az INT2IF-et torold meg mielott az INT2IE-t engedelyezed.

Amugy meg lehet egy olyan is hogy szimulatorban nem tortenik megszakitas, ha azon probalkozol, de ez persze nem biztos csk egy lehetoseg...
(#) Shoo hozzászólása Júl 16, 2011 /
 
Hali!

Egy kis segítséget szeretnék kérni.
Egy 16F1826-os 1-es komparátorát akarom használni. Kicsit nehezen igazodom el az adatlapján. Ha jól vettem ki akkor az RA1 a negatív, RA2 a pozitív, RA3 pedig a kimeneti láb. Jól gondolom? Ha nem légyszives segítsetek.
Előre is köszönöm!
Üdv!
(#) potyo válasza Shoo hozzászólására (») Júl 17, 2011 /
 
Igen, lehet ilyen módba is állítani. De több láb is lehet mind pozitív, mind negatív bemenet, nem néztem, mi az a beállítás, ami reset után alapból rendelkezésre áll (valószínűleg az, hogy tiltva van a komparátor).
(#) janikukac hozzászólása Júl 18, 2011 /
 
Sziasztok. A Demo Boradom-on lévő PIC18F887-en megtanulhatok PIC-ezni , mivel azt mondják, a 18F-es PIC-en lehet igazán tanulni, és kérdés, ez ideális-e.
(#) matheattila hozzászólása Júl 18, 2011 /
 
Sziasztok, lenne egy problémám a Hi Tech C18 fordítóval MPLAB-ban, akár mit is csinálok a program mindig a program memória végére kerül de ott bootloader van s így nem kerül fel a program a PIC-re (18F4620) és ez nagyon idegesít.
Nem tudja esetleg valaki, hogy hogyan lehetne máshová helyezni a programot?
próbáltam az asm részlettel is a c kódban de úgy is:
.
.
.
#asm
org 0x20;
#endasm
.
.
.

Kérlek segítsen aki tud, köszönöm
(#) kissi válasza janikukac hozzászólására (») Júl 18, 2011 /
 
Ha van ilyen PIC-ed demópanellel, akkor nyugodtan használd azt! Vannak nehézségek ( a legnagyobb probléma a bankváltás ! ), de ez nem olyan nagy probléma és minimális odafigyeléssel a kezdő programjaidnál nem fog akadályt jelenteni. Viszont ha ezt megtanulod, akkor nem lesz problémád a kisebb lábszámú pl. 12F675-ös kontrollerrel sem és a 18-as sorozatra áttérés sem fog gondot okozni !

Steve
(#) janikukac válasza kissi hozzászólására (») Júl 18, 2011 /
 
Köszike szépen ! Valami könyvet tudnál ajánlani ami C-ben tanít 18-as kontrolleren programozni? Még csak egy saját programom van, egy stroboszkóp, amit 12F683-ra írtam.
(#) kissi válasza janikukac hozzászólására (») Júl 18, 2011 /
 
Én kapásból PIC16F887-nek olvastam a kontrollert, mert olyat ismerek ( demópanellel is van tudomásom szerint ), 18F887-et meg a Microchipnél sem látok !
C-s kérdés már többször volt itt a fórumon, ha rákeresel ( és dolgozol vele ! ) akkor biztos megtalálod a könyvek lelőhelyeit !

Az általam előbb leírtak a 16-os sorozatra vonatkoznak !

Steve
Következő: »»   1000 / 1319
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