Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   867 / 1210
(#) Pali79 válasza sonajkniz hozzászólására (») Okt 17, 2016 /
 
Itt nem ez a probléma! A program végtelenül egyszerű pont az ilyen hibák kiszűrése végett. Annyi az egész, hogy az inicializálás után nem csinál semmit csak vár a megszakításra. A megszakítás 1 másodpercre van beállítva és csak billegteti a LATA,1-et ami van egy LED, hogy lássam, hogy meg a timer.
(#) attika hozzászólása Okt 17, 2016 /
 
Sziasztok!
Talán nem teljesen ide illő kérdés de tud valaki ajánlani házilag megépíthető Pic tanulópanelt amit érdemes megépíteni és működik is?
(#) Pali79 válasza attika hozzászólására (») Okt 17, 2016 /
 
Szia!
Sokan bejártuk ezt az utat és sokan arra jutottunk, hogy nem érdemes ilyet építeni. Breadboard, vezetékköteg, pár LED, egy maroknyi ellenállás elég a kezdetekhez.
(#) attika válasza Pali79 hozzászólására (») Okt 17, 2016 /
 
Köszönöm a gyors válaszod. Ezek megvannak mert épp ezeket használom most is csak gondoltam egy kész panelon könnyebb lenne mint a vezetékeket dugdosni.
Mondjuk ennek annyi előnye van a kész panellal szemben, hogy könnyedén lehet váltani más Pic-ekre.
Akkor maradok ennél én is.
Köszönöm.
(#) Pali79 válasza attika hozzászólására (») Okt 17, 2016 /
 
Pontosan! A kész panelek nagyon rugalmatlanok. Nekem is van vagy 5-6 db különböző PIC-kel, de egyiket sem használom igazából, mert mindig van valami újabb terv amihez a meglévő nem jó valamiért.
(#) attika hozzászólása Okt 17, 2016 /
 
Pic 16f628A-nál a PicKit 2 azt írja ki, hogy Programming failed Memory address 0x000000.
Ilyenkor mi lehet a gond vele?? Kukázhatom a Pic-et?
Volt több hibás I/O-s ilyen Pic em és egy kis led villogtatós progival vizsgáltam a kimeneteket.
Az egyiknél a RA0-ás kimenet rossz de ennél az egynél még fel se engedi programozni mert ezt a hibaüzenetet írja a PicKit program.
(#) Pali79 válasza attika hozzászólására (») Okt 17, 2016 /
 
Próbálj esetleg egy törlést és ellenőrzést.
(#) attika válasza Pali79 hozzászólására (») Okt 17, 2016 /
 
Sajnos azon már túl vagyok de ugyan azt a hibát dobja.
Nem tudom az előéletét, hogy mibe és mikor használhattam de elképzelhető , hogy valamikor rosszul lett bekötve.
(#) Pali79 válasza (Felhasználó 15355) hozzászólására (») Okt 17, 2016 /
 
Az ellenállás csak megszokásból van ott, egyébként az MCLR ki van kapcsolva.
(#) attika válasza Pali79 hozzászólására (») Okt 17, 2016 /
 
Újabb dolgot vettem észre, törölni nem tudom a Pic-et és azért adhatja ezt a hibát.
Ha rányomok az Erase gombra akkor a program memóriát teleírja 3FFF-el de ha utána kiolvasom akkor visszaírja az eredeti állapotot és ha a kiolvasott tartalmat egyből vissza írom rá akkor Programming Successful. Más 16f628-al tökéletesen működik csak ezzel az egyel csinálja ezt.
Valakinek valami ötlet?
(#) Pali79 válasza attika hozzászólására (») Okt 17, 2016 /
 
Próbáld meg a Tools menüben a "Use Vpp first program entry" opciót bekapcsolni a törlés előtt.
(#) attika válasza Pali79 hozzászólására (») Okt 17, 2016 /
 
Use LVP, Use Vpp, próbáltam mind a kettőt.
Próbáltam ezt és próbáltam ezt is de sajnos egyik se jött be.
Nem egy több ezres tétel ez a típusú Pic csak érdekelne és jó lenne rájönni, hogy miért lehet ez vagy, hogy egyáltalán menthető vagy ne foglalkozzak vele.
(#) Pali79 válasza attika hozzászólására (») Okt 17, 2016 /
 
Hát én kifogytam az ötletekből...De azért még ne dobd ki..
(#) Pali79 hozzászólása Okt 17, 2016 /
 
Nos. Kicseréltem a PIC foglalatát, most nem tudtam mérni a lábak között ellenállást, tehát 20 Mohm fölött van. El is indult a timer, többször leállítottam, újraindítottam, stabilnak tűnik. Rátettem az LCD-t, most számolja az időt. Éjszakába bekapcsolva hagyom, kíváncsi leszek reggel mit mutat.
(#) kissi válasza Pali79 hozzászólására (») Okt 18, 2016 /
 
Jó lesz az !
(#) aroxol hozzászólása Okt 18, 2016 /
 
Sziasztok!

Ezt hogy lehet legegyszerűbben lerövidíteni:

DECFSZ INDF0
DECFSZ INDF0
DECFSZ INDF0
DECFSZ INDF0
DECFSZ INDF0
A hozzászólás módosítva: Okt 18, 2016
(#) Pali79 válasza aroxol hozzászólására (») Okt 18, 2016 /
 
Ha megmondod mi a célja ennek a résznek könnyebb tanácsot adni.
(#) aroxol válasza Pali79 hozzászólására (») Okt 18, 2016 /
 
FSR-t léptetem, egy szövegben karaktereket keresek ami fix helyen van.
(#) kissi válasza aroxol hozzászólására (») Okt 18, 2016 /
 
Szia!
Használj SUBWF-et az FSR0 csökkentésére, ha ez a cél...!
(#) aroxol válasza kissi hozzászólására (») Okt 18, 2016 /
 
Szia!

Igen, csak az a gond hogy a wreg-t nem akarom megváltoztatni, ha meg áttöltöm változóba még hosszabb lesz a program.
(#) nedudgi válasza aroxol hozzászólására (») Okt 18, 2016 /
 
Milyen kontrollerről van szó? Az FSR0 tartalmát akarod csökkenteni, vagy egy tetszőleges memóriacímet?
(#) aroxol válasza nedudgi hozzászólására (») Okt 18, 2016 /
 
18f14k22 A memóriacímet szeretném változtatni.
(#) foxi63 válasza aroxol hozzászólására (») Okt 18, 2016 /
 
Szia!
Ez csökkenti a fsr0 értékét a beolvasás után: postdec0
A hozzászólás módosítva: Okt 18, 2016
(#) ktamas66 válasza aroxol hozzászólására (») Okt 18, 2016 /
 
A DECF FSR0L végül is két karakterrel rövidebb , ha nullára is szeretnéd vizsgálni ciklusba kell szervezni (hiszen így csak akkor működik, ha az utolsónál válik nullává). Ha egy karakter fix helyen van, miért kell keresni?
(#) nedudgi válasza aroxol hozzászólására (») Okt 18, 2016 /
 
Rosszul kérdeztem. A memóriacím tartalmát szeretnéd változtatni, amelyikre az FSR0 mutat?
A hozzászólás módosítva: Okt 18, 2016
(#) aroxol válasza nedudgi hozzászólására (») Okt 18, 2016 /
 
A memória címet akarom megváltoztatni. és a tartalmát ellenőrizni.
(#) nedudgi válasza aroxol hozzászólására (») Okt 18, 2016 /
 
Nem vagyok biztos benne, hogy a program olvashatóságát javítaná bármilyen módosítás. A kontrolleredben van elég memória, egy-két utasítás megspórolásának van értelme? Ha fix a cél címe, akkor az LFSR adja a legkönnyebben módosítható, legbiztonságosabb kódot.
Ha a tartalmat ellenőrzöd, akkor bájtonként tudod elvégezni, akkor pedig a POSTDEC operandus automatikusan elvégzi a módosítást.
A kiinduló kérdésben INDF0 regisztert emlegettél. Az azt a memóriacímet jelenti, ahova az FSR0 mutat - az öt utasítás ugyanazt a memóriacímet módosítja.
A hozzászólás módosítva: Okt 18, 2016
(#) don_peter hozzászólása Okt 18, 2016 /
 
Srácok, kukkantsatok már rá erre a tervre, sematikus ábrára..
Csatoltam.

Illetve a PIC32MX795-re a letöltött bootloadernél miért van az, hogy a kapcsolás szerint megtervezett és elkészített bekötéssel nem működik?
Tehát E7 (gyári kapcsolás) felhúzva 10K-s ellenálláson keresztül 3.3v, majd a kapcsolóval 0-ra húzom, ha szükség van bootloaderre, de nem működik.
Természetesen a beállításokat átnéztem és minden a helyén van, amit kellett azt megváltoztattam.
Annyi változás van, hogy a végleges kapcsoláson E8 lábat választottam, de gondolom, hogy ez nem okozhat problémát.
Ami még fontos lehet, hogy magától lép sorozatos indítgatás során egyszer csak bootloader módba.
Ezt meg kellene oldanom, hogy csak akkor tegye ha azt akarom és magától soha..

Tehát bootlader programmal van vagy lehet gond?
Áttírt kód: (eredeti kommentelve)
  1. /** SWITCH *********************************************************/
  2.     #define mInitSwitch2()      TRISEbits.TRISE8=1; // E7
  3.     //#define mInitSwitch3()      TRISEbits.TRISE6=1;
  4.     #define mInitAllSwitches()  mInitSwitch2();//mInitSwitch3();
  5.     #define sw2                 PORTEbits.RE8   // E7
  6.     //#define sw3                 PORTEbits.RE6
A hozzászólás módosítva: Okt 18, 2016
(#) Tasznka válasza don_peter hozzászólására (») Okt 19, 2016 /
 
Az analóg részt is átírtad? Mert általában a gyári progik csak azoknál kapcsolják ki ,amit használnak digitálisnak. Mi meg általában mindent tiltunk,és max. azt engedélyezzük,ami kell,bár ez programozó függő.
(#) pajti2 válasza don_peter hozzászólására (») Okt 19, 2016 /
 
Tipp: hagyd meg az eredeti define neveket, és csak a tartalmukat írd át.
A hozzászólás módosítva: Okt 19, 2016
Következő: »»   867 / 1210
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