Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1241 / 1318
(#) usane válasza pajti2 hozzászólására (») Jan 5, 2017 /
 
Ez egy Mission Impossible. Még itt sem képesek 3 oldallal visszább olvasni. Más.
Ezt már egyszer talán kérdeztem, de akkor még elég új volt. PIC32MM0064. Főleg Hp41C fórumtárs lehet benne kompetens, de hátha már más is "játszott" ezzel az új típussal.
Vagy ha valakinél van kéznél ilyen SCCP modulból próbáljon meg PWM jelet kicsikarni. Nekem még nem sikerült.
(#) Hp41C válasza usane hozzászólására (») Jan 5, 2017 /
 
Még csak ott tartok, hogy fel tudom programozni PICkit2 -vel.
(#) cross51 válasza usane hozzászólására (») Jan 5, 2017 /
 
Nálam van itthon 32MM0064GPL028, ha jut időm rá ma akkor megpróbálom neked megnézni, ha esetleg nem akkor holnap mindenképp megnézem.
(#) usane válasza cross51 hozzászólására (») Jan 5, 2017 /
 
Rendben. Köszönöm.
(#) cross51 válasza usane hozzászólására (») Jan 5, 2017 /
 
Beállítottad a PPS-t? Nálam megy csodálatosan.
  1. //SCCP
  2.     RPOR2bits.RP11R = 6;
  3.     CCP2CON1 = 0;
  4.     CCP2CON1bits.MOD = 0b0101;
  5.     CCP2CON1bits.ON = 1;
  6.     CCP2PR = 0xFFFF;
  7.     CCP2RA = 0xFFFF;
  8.    
  9.     while (true) {
  10.         for (int i = 0xFFFF; i > 0; i--) {
  11.             CCP2RA = i;
  12.             delay_us(10);
  13.         }
  14.  
  15.         for (int i = 0; i < 0xFFFF; i++) {
  16.             CCP2RA = i;
  17.             delay_us(10);
  18.         }
  19.     }
  20.     //


Szerk.:
Azt nem írtam PPS beállítás előtt a PPS "unlock-olni" kell.
  1. SYSKEY = 0xAA996655;
  2.         SYSKEY = 0x556699AA;
  3.         SPLLCON = 0x30000;
  4.         SYSKEY = 0;
A hozzászólás módosítva: Jan 5, 2017
(#) usane válasza cross51 hozzászólására (») Jan 5, 2017 /
 
És ez megy a hardveren? Igen, beállítottam a PPS-t. Bármelyik lábra raktam nem jöt tki semmi. Nem is az SCCP-re gyanakszom hanem a PPS hibájára ,ert MCCP megy rendesen bármelyik kijelölt lábán, az sccp meg ugye PPS-en keresztül. Nekem GPL020-asom van. 3 db-on is próbáltam. Ha más nem lesz legközelebb veszek egy 028-ast. Még arra gondoltam a fordító hátha rosszul fordította. Megnézem mert lehet, hogy nem a legujabb van fenn. Köszi, hogy kipróbáltad.

szerk. 1.42 XC32. Nincs újabb. Akkor már csak típushibára tudok gondolni, de nem találtam róla semmit.
A hozzászólás módosítva: Jan 5, 2017
(#) cross51 válasza usane hozzászólására (») Jan 5, 2017 /
 
Nem tudom, most gyorsan át dobtam RB2-re meg megnéztem az RA0-án, hátha az A portra nem megy PPS, de mind a kettőn megy. Nem tudom egy kicsit nehéz elképzelni, hogy a 20pin-esen nem megy, mert ugyanaz a doksi, de lehetséges, hogy ilyen belső típusos hiba.. nem tudom.

Vagy esetleg nem nézted el a PPS beállítást valahol?
(#) usane válasza cross51 hozzászólására (») Jan 5, 2017 /
 
Nem sok mindent lehet rajta elnézni. Megcsináltam az unlock sekvenciát is. A regiszter meg elég egyértelmű. Én is arrak gondoltam, hogy én baltáztam el valamit, mert csak kéne legyen valami a neten róla. Vagy senki sem használja a 20 lábút? Na mindegy, majd játszok még vele.
(#) cross51 válasza usane hozzászólására (») Jan 5, 2017 /
 
Én azért vettem a 28 lábút mert ez volt DIP-esbe lusta voltam ilyen expansion board-ot tervezni hozzá

És engem kicsit sokkolt, hogy csak egy Timer van az MM-ekben, de úgy láttam, mintha a MCCP/SCCP modul Timer-ét lehet szimplán Timer-ként használni, jól láttam?
(#) usane válasza cross51 hozzászólására (») Jan 5, 2017 /
 
Igen jól láttad, használhatóak timerként. A perifériahiány(pl timer) meg az energiatakarékosság miatt van. Mármint ezek nem olyanok mint az MX, MZ széria, ezeket elemes alkalmazásokhoz tervezték, azokban meg minek annyi. Meg ott a CORE TIMER is.
(#) cross51 válasza usane hozzászólására (») Jan 5, 2017 /
 
Nem tudom ez lehet már nagyon off, de egy dolgot nem értek a többit is a low pin low power low price-nak tudtam be, hogy az I2C-t miért spórolták ki? vagy az I2C a felhúzás miatt "sokat eszik"?
(#) Wezuv válasza usane hozzászólására (») Jan 5, 2017 /
 
Igen, a CORE Timer szinte minden időzítésre jó és egy ilyen kis lábszámú PIC-et nem lehet túl sok egyidejű külső feladatra felhasználni. Érdekes alternatíva kislábszámú 18F-ek helyett.
(#) usane válasza cross51 hozzászólására (») Jan 5, 2017 /
 
Hát lehet. 10k-val felhúzva is 300uA. Az pl egy gombelemnek sok. Amúgy nem tudom, hogy ezért-e vagy csak tényleg a low price miatt.

Wezuw: Igen én is azért néztem ki, plusz az alacsony fogyasztása miatt, de azzal még nem tudtam foglalkozni. Ráadásul ollcsóbb is a legtöbb 18-asnál. Egyszerű feladatokhoz tökéletes.
(#) cross51 válasza usane hozzászólására (») Jan 5, 2017 /
 
De eszembe jutott, hogyha mégis nagy szükség lenne az I2C-re asszem már 8 biten is van, de itt mindenképp van Open Drain-es kimenet (nem kell a TRIS-el "szenvedni") és rá lehet dobni egy master i2c code-ot egyszerűen a slave-et is biztos meg lehet csinálni csak az valószínűleg összetettebb, mint a master code.
(#) Hp41C válasza cross51 hozzászólására (») Jan 5, 2017 /
 
Sőt, a két vonal felúzását ki is lehet kapcsolni, amikor nem kell az I2C kommunikáció.
(#) futlac válasza futlac hozzászólására (») Jan 11, 2017 /
 
Segítségetekkel megoldást találtam:
LIST P=16F628 ;jelez.asm két számjegyet
#INCLUDE "P16F628.INC"

__CONFIG _XT_OSC&_WDT_OFF&_LVP_OFF&_PWRTE_ON&_MCLRE_OFF

CBLOCK 0x20 ;16f628 esetén
futlac
(#) Attila86 hozzászólása Jan 11, 2017 /
 
dsPIC33EP512MU810-nek az RG3 lábához ez van írva az adatlapban: D-/RG3
A fordító a TRISGbits.TRISG3=0; sorra hibát dob, szerinte a TRISG-ben nincs TRISG3. Ez lehetséges?
(#) cross51 válasza Attila86 hozzászólására (») Jan 11, 2017 / 1
 
Nem tudtam ránézni most az adatlapra csak gyors sejtés, A D- ból sejtem, hogy az csak bemenet és 3.3V-os az USB SIE miatt, esetleg nézd meg, hogy PORTGbits.RG3 van-e mert akkor valószínűleg a sejtésem igaz.
(#) Attila86 válasza cross51 hozzászólására (») Jan 11, 2017 /
 
PORTGbits.RG3 az van, szóval akkor tényleg csak bemenet lehet. Kár, mert egy LED-et kötöttem oda.
(#) benjami válasza Attila86 hozzászólására (») Jan 11, 2017 /
 
Miért nem nézed meg a "p33EP512MU810.h"-ban? A fordító is csak innen szedi össze a perifériák neveit. Már csak azért is érdemes, mert én már találkoztam olyannal, aminek az elnevezése megváltozott a fordító későbbi verziójában.
(#) Wezuv válasza Attila86 hozzászólására (») Jan 12, 2017 /
 
Adatlap 25. oldal: Bővebben: Link
These pins are input only on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
A hozzászólás módosítva: Jan 12, 2017
(#) Wezuv hozzászólása Jan 17, 2017 /
 
Sziasztok! PIC32MZ-vel játszok mostanában, ahogy már olvashattátok és egyre jobban kiismerem a harmony-t is, ezért gondoltam teljesen alapról összetákolok egy projectet. Tök egyszerű alap projectet szerkesztettem, amiben csak 5 LED van. Lefordult, semmi hiba, mehet a debugg. Azt vettem észre, hogy a Variables ablakban nem változtak az értékek, valamint nem lépegetett lépésenként a program, lépés helyett elindult és nem állt meg csak pause-ra, de akkor sem jött elő a kurzor, csak akkor, ha a Run-ra nyomtam és akkor megállt a Break pontnál, akkor is, ha az előrébb volt, mint ahol a programnak járnia kellett volna. Széttúrtam a netet két napja, de nem találtam erre vonatkozó bejegyzéseket. Már a maradék hajam is kihullott, mikor most az előbb annyit csináltam, hogy a Variables ablakból mindent kitöröltem és újra felvettem a TRISC, LATC regisztereket. Innentől minden helyrezökkent. Gratulálok microchip!!!
(#) Attila86 hozzászólása Jan 18, 2017 /
 
Az MPLABX-ben ki lehet valahogyan kapcsolni azt a funkciót, hogy ha írok a programot és beírok egy "(" jelet akkor magától írjon utána egy ")"-ot?
(#) kissi válasza Attila86 hozzászólására (») Jan 18, 2017 / 1
 
Tools --> Options --> Code Completion --> Insert Closing Brackets Automatically pipát kivenni !
(#) Attila86 válasza kissi hozzászólására (») Jan 18, 2017 /
 
Szuper, köszönöm!

A következő kérdésem:
Hogyan lehet mutatót tenni a PIC kitüntettet regisztereinek bitjeire? Például PORTBbits.RB2 vagy INTCON3bits.INT2IF, stb...
Gondolom sehogy, hanem csak a regiszterre lehet aztán össze kell ÉS-elni bitenként.
(#) Hp41C válasza Attila86 hozzászólására (») Jan 18, 2017 /
 
Eltaláltad...
(#) Attila86 válasza Hp41C hozzászólására (») Jan 18, 2017 /
 
Akkor hogyan lehetne megoldani ezt elegánsan?:
Van egy függvényem ami egy rotációs enkódert kezel. Meg kell neki adni egy-egy definícióban az enkóder két lábát hogyan tudja beolvasni, illetve mindkét láb megszakítást generál és ehhez is tartozik 3-3 bit:
  1. //Enkóder A:
  2. #define EA     PORTBbits.RB2           //"Enkóder A" láb állapotának beolvasása
  3. #define EA_E   INTCON3bits.INT2IE       //"Enkóder A" megszakítás-engedélyezés
  4. #define EA_F   INTCON3bits.INT2IF       //"Enkóder A" megszakítási flagbit
  5. #define EA_P   INTCON2bits.INTEDG2     //"Enkóder A" megszakítási él (fel vagy lefutó élre okoz megszakítást)
  6. //Enkóder B:
  7. #define EB     PORTBbits.RB1           //"Enkóder B" láb állapotának beolvasása
  8. #define EB_E   INTCON3bits.INT1IE      //"Enkóder B" megszakítás-engedélyezés
  9. #define EB_F   INTCON3bits.INT1IF      //"Enkóder B" megszakítási flagbit
  10. #define EB_P   INTCON2bits.INTEDG1     //"Enkóder B" megszakítási él (fel vagy lefutó élre okoz megszakítást)

Ez tök jó mindaddig, míg egyetlen enkódert akarok használni. Ha viszont kettőt vagy többet, akkor azt úgy gondoltam megoldani hogy létrehozok egy stuktúra-típust melyben megvan mind a nyolcnak a helye. Aztán létrehozok ebből a stuktúrából annyit ahány enkóderem van, majd az enkóder-kezelő függvénynek az épp kezelendő enkóderhez tartozó struktúra címét adnám át.
(#) Hp41C válasza Attila86 hozzászólására (») Jan 18, 2017 /
 
A megszakítás prellmentesít és egy RAM struktúrába pakol. A enkóder-kezelő függvény a RAM -beli struktúrákat kezeli.
(#) Attila86 válasza Hp41C hozzászólására (») Jan 18, 2017 /
 
Ezt nem igazán értem. Hogy micsoda?
(#) Hp41C válasza Attila86 hozzászólására (») Jan 18, 2017 /
 
Felveszed RAM -beli struktúrába a feldolgozáshoz szükséges adatokat. Készítesz belőle egy tömböt annyi elemmel, ahány encoder -t szeretnél kezelni.
A megszakítás beolvas és a megfelelő tömb elembe tárol, jelzi, hogy az(oka)t a tömb eleme(ke)t ki kell értékelni. A főprogram meghívja a kiértékelendő elemekre az enkóder-kezelő függvényt, ami elvégzi a feladatát immár indexelve és törli a feldolgozandó jelzés(eke)t.
A hozzászólás módosítva: Jan 18, 2017
Következő: »»   1241 / 1318
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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