Fórum témák
» Több friss téma |
Ha jó a bekötés ( tényleg soros !? ), akkor ezzel nem tudod tönkre tenni ( rossz programmal sem 5V-ról vagy kevesebbről, de ha 12 V-ra kapcsoltad, akkor simán!) !
Idézet: „Arduinoval könnyebb lenne az egész, mert arra már kód létezik készen is!” Te tényleg olyan fárasztó vagy, hogy nyugágy kell hozzád. Hónapokkal ezelőtt is, és most is azon hisztiztél, hogy van neked egy PIC-ed, és nem vagy hajlandó másikat venni. Most meg elkezdessz Arduniózni. Meg hogy arra van készen. De amikor felajánlottak neked egy kész panelt, én pedig felajánlottam egy működő kapcsolást a hex-el együtt, még csak válaszra sem méltattál. Bővebben: Link Már akkor is azt ajánlottuk, az alapoknál kezd! Ha már kapisgálod, haladhatsz tovább. De ezen hozzászólások valahogy nem hatolnak át a retinádon.Mégis, mit vársz tőlünk még? Készítssük el számodra, majd térdet hajtva előtted díszdobozban adjuk át?
Hát..., ha megvan külön a hex fájl is a panel mellé a PIC-cel együtt, akkor mehetünk privátba, mert elfogadnám a paneledet...
![]() A hozzászólás módosítva: Aug 28, 2017
A linker, a vermet az általad leírt 3 sor alapján, mindíg a .bss direktiva után felsorolt .space-el lefoglalt adatmemória címek utáni következő címre helyezi. Próbálkoztam a verem máshová helyezésével, (úgy hogy az SPLIM-be pl 0x1000-ret írok) de a hiba ugyanúgy fennáll. Lehetséges, hogy figyelmetlen vagyok és nem veszek észre valami elvi hibát egyik rutinban vagy nem tudom. De viszonylag sokáig eljut a program( TFT inicializálás, RFID modul fontosabb regisztereinek beolvasása, majd megjelenítése a kijelzőn), majd miután kiírt mindent a kijelzőre megáll a folyamat. (ekkor még egy két pixel zsizseg a kijelzőn, gondolom pont az írásnál fut bele zsákutcába.) Viszont, ha meg elírtam volna valamit, vagy pl elkalandozik a program, akkor 40 lefoglalt változónál miért nem jelentkezik a hiba?... Holnap délelött debug módban végig követem a kritikusabb pontokat hátha rájövök. Mindenesetre fura az egész.
Szerintem csinálj hibakezelő rutint. Alapból minden megszakítási és kivételkezelési vektort a reset címre állít az assembler/linker, ezért bármilyen hiba fordul elő (pl. páratlan címre történő szó méretű hozzáférés, azaz címhiba) a mikrovezérlő újraindul. Hiba esetén tehát ellenőrizni kell hogy melyik hibavektorra történt az ugrás, és melyik címen lépett fel a hiba. Ezeket az adatokat, ill. a fontosabb regiszterek tartalmát aztán megjelenítheted a kijelzőn, vagy elküldheted soros porton egy terminálra, esetleg LED-eket használhatsz állapotjelzésre.
Megoldódott a probléma.. Logikai analizátor áramfelvétele befolyásolta az AM2322 működését.
Levettem és 2 inicializálásra már dobja is külön tápról az adatokat.. Most UART-on monitorozom, így nem befolyásolja SDA és CLK lábakat.
Megpróbálom a megszakítás forrás címét kiírni kijelzőre, remélhetőleg eközben nem történik hiba. Kicsit 22-es csapdájának tűnik a feladat, de kipróbálom, mert a késöbbiekben is hasznos lehet.
A bekötés jó,működött majd rátöltöttem az új progit és vége.Mind a kettő PIC-nél.Mi lehet a baj?
Terhelni biztos nem terheltem túl és mégsem jön ki a lábán feszültség 0V-ot mérek multival.A többi láb az működik.
Ha jó a LED, jó a bekötés, nincs 12V
![]()
Már készítettem és semmi.Én is előszőr azt hittem hogy programhiba de nem.
Kizártnak tartom hogy az adat- vagy veremterület foglalásával lenne gond. A korábban mellékelt képedből is látszik hogy azok szépen egymás után következnek. Szerintem olyan bibi lehet, hogy valamelyik rutinod esetleg az adatterület rossz helyére vagy fix címére hivatkozik (ír/olvas), ami adattartalomtól függő hibás működést eredményez. (Ahogy változik az adataid elhelyezkedése, úgy okoz, vagy nem okoz látható hibát.) Ez jó szivatós tud lenni.
![]()
Az utolsó utasítást elírtad. Helyesen:
Másik lábra működik ( oda tudsz progit írni, ami bekapcsolja a LED-et <-- biztos fut a programod, jók a konfigurációs bitek, MCLR !? ) ??
Sziasztok!
Adott egy PIC32MX150F128B kontroller. A VCAP kondenzátornak egy 10µF-os tantál kondenzátort választottam. Az adatlap szerint maximum 1R ESR értékű kondi kellene oda, viszont amit én odatennék az 3R(@100kHz). Fog ez gondot jelenteni, vagy ekkora eltérés még nem számít nagyon , kinek milyen tapasztalata van ilyen téren? Köszönöm ! A hozzászólás módosítva: Aug 29, 2017
A TRISA és ADCON regiszterek megfelelő bitjeit is állítod?
Teljesen elakadtam PicKit3-al kapcsolatban.. egyszerűen nem sikerül a kapcsolatot életre kelteni!
Sima dugdosós panelon.. Elég csak a "kommunikációs lábakat összekötni? tápot adjak neki ne adjak ( letiltsam mplab ba vagy sem) láttam olyanokat hogy nem szereti a PK3 ha a 100nF es kondi ott van a lábnál Ha az MCLR felvan húzva tápra, meg ilyenek.... Valaki adna nekem egy részletes útbaigazítást? Nagyon köszönöm!
MpLabban is kell neki tápot adnod, vagy külső táplálás.
Ha MpLab akkor: 1. Run > Set Project Configuration > Customize... 2. "Categories" ablakban kattints egyszer a PICkit 3ra. 3. Jobboldalt "Option Categories" lenyíló menüben válaszd ki a "Power"t. 4. Jelöld ki hogy :"Power target circuit from PICkit 3". 5. Válaszd ki a feszültségszintet Ennyi az egész ![]() A hozzászólás módosítva: Aug 29, 2017
És akkor ha kiválasztom ott akkor külön tápot már nem kell adnom a PIC nek ugye?
Az a 470 Ohm-os ellenállás kell az egyes kettes pin közé?
Ha a PICkit3 adja a tápot (van egy limit mennyit tud adni, nem tudom pontosan de megkeresem ha releváns) akkor nem kell külső táp, sőt ha jól tudom észleli is és letilt akkor a PICkit3 (a 2 szerintem tiltott - nekem sincs régóta picKit3-om).
Ha a programban használod az MCLR beállítást akkor tegyél oda egy ellenállást, 10K a tipikus értéke. Ha a programban nem vagy bemenetnek használod a lábat akkor nem szükséges oda semmi.
Ha jól néztem ,akkor az RA5-t szeretnéd "piszkálni" !? A TRISA-t gondolom, hogy megfelelően beállítottad ( ha másik lábra tudtál vezérlést csinálni, akkor tudod, hogyan állítsd kimenetnek ! ), itt még ami gondot okozhat, az a CMCON regiszter, ha pl. megváltoztattad a default ( CMCON=7 ) beállítást (valami komparátor használat miatt ) !
A hozzászólás módosítva: Aug 29, 2017
Megtaláltam a hibát! Van egy 64 bájtot letároló rutinom, aminél meg volt adva kezdésnek a 0x0854 cím, majd ettől kezdve pakolászta a beolvasott adatokat, viszont így mikor a 41. változót lefoglaltam (a 41. cím a 0x0852 re esik) a verem pedig a lefoglalt adatmemória terület után kerül szabályszerűen, ha az általad is említett 3 soros verem inicializálást használom, így a verem a 0x0854- címen kezdte a tárolást, ezért a rutinom beleírt a verembe mikor az meg lett hívva. Köszönöm a segítő szándékot Tőled és Zsora-tól is!
Minden jó, ha jó a vége!
![]()
Szerintem hagyd az MPLAB-ot, mert nem lesz elegendő a táplálás és még csak felprogramozni sem fogod tudni. Külső táp szükséges a PicKit3 használatához, legalább is nekem csak ekkor működik biztosságosan.. Még belső programból való táplálás esetén nem sikerült rendesen programoznom vele. Külső tápról minden esetben. Programozáshoz használd az MPLAB IPE-t.
MPLAB X telepítése közben ki tudod választani az IPE-t.
Nekem 3 PICKIT3-am van, mindegyikkel tudok programozni külső táp nékül is. Néha lejebb kell venni ennyi az egész. Pl. 3.3V-osnál 3.125V-ra kell rakni. Persze ha 1000db LED meg egyebek lógnak a PIC-en akkor más a helyzet.
Nekem is megy, arra kell figyelni, hogy a PK3-nál manuálisan kell engedélyezni a táp felkapcsolását ( ellentétben a PK2-vel !) !
Semmi ilyesmit nem használtam.Erre rá nem jövök hogy,hogy ment tönkre, ráadásul 2 picnél is.
Dugdosós panelen van ? A stabilizátor is ?
|
Bejelentkezés
Hirdetés |