Fórum témák
» Több friss téma |
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.
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?
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.
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.
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.
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.
Próbálj esetleg egy törlést és ellenőrzést.
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.
Az ellenállás csak megszokásból van ott, egyébként az MCLR ki van kapcsolva.
Ú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?
Próbáld meg a Tools menüben a "Use Vpp first program entry" opciót bekapcsolni a törlés előtt.
Hát én kifogytam az ötletekből...De azért még ne dobd ki..
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.
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
Ha megmondod mi a célja ennek a résznek könnyebb tanácsot adni.
FSR-t léptetem, egy szövegben karaktereket keresek ami fix helyen van.
Szia!
Használj SUBWF-et az FSR0 csökkentésére, ha ez a cél...!
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.
Milyen kontrollerről van szó? Az FSR0 tartalmát akarod csökkenteni, vagy egy tetszőleges memóriacímet?
18f14k22 A memóriacímet szeretném változtatni.
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
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?
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
A memória címet akarom megváltoztatni. és a tartalmát ellenőrizni.
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
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)
A hozzászólás módosítva: Okt 18, 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ő.
|
Bejelentkezés
Hirdetés |