Fórum témák
» Több friss téma |
Itt nem besertodni kell, ha nem kapsz azonnal valaszt! Mindenki a sajat idejebol es energiajabol segit masoknak...
Kicsit bovebben kellene leirnod, hogy mi a problema. Milyen PIC-rol van szo, csak MPLAB es szimulator alatt nem kovetkezik be a reset de valojaban igen? Ha igen, akkor a debugger menuben a Settings-ben a WDT-re mi van beallitva? WDT postscaler hogy van beallitva? Jo lenne ha az egesz konfigot bemasolnad, mert igy nehez talalgatni.
Mondjuk nem tudjuk milyen PIC. Ja es kene ismerni a OPTION reg tartalmat, mert ugye a TMR0 es a WDT osztoja kozos. Jobb lenne a programot latni, es akkor konnyebben lehet talalgatni a hibat illetoen.
Gondoltam megosztom: ha valaki pic-cel multiplexben hajt kijelzőket, mondjuk közös katódosat, akkor az használjon fetet inkább a kapcsolásra, mert én eddig sima tranzisztort használtam, és gondolom a szaturáció miatt mindig be kellett tennem egy késleltetést a port törlése előtt, hogy látható legyen, azaz legyen fényerő, amit eddig csak sejtettem,hogy miért van. Most látom a sebesség volt az oka hogy halványan egybe folytak a karakterek, most már nem kell semmi, ez jelentősen felgyorsítja a programot. üdv: 'n'
Segítség!
Megint elkezdtem a veszteglést és megint nem értem mi az oka, most mielőtt beírtam újra is telepítettem az Mplabot! Legutóbb ez megoldotta a problémát. Most nem és folyamatosan rosszul fordít, amit a Pickit2 ezzel a sárga üzenettel honorál. A legutóbb kisegített beállításokat megnéztem és megint jól vannak beállítva, de cseszettül zavar, hogy egyszercsak fogja magát és elkezdi ezt! Csatoltam képeket talán az árulkodó lehet, hogy az output ezt írja ki:Make: The target "E:\n_ALL_0\PICcccc\ttttt\clock_uv.o" is out of date.
Szia!
Ha "Debug" módban készül a program, az MpLab hozzá teszi a debugger kiszolgáló programrész. Ha erre nincs szükséged, akkor álklítsd át "Release" módra...
Ez sajnos nem segített, hogy Relase módban újraindítások után sem. A Pickit2-t is újratelepítettem, az Mplabot is több verziót is próbáltam. Ezenkívül mindig telepítések előtt töröltem az előző konfigurációs beállításait, amit ugye az uninstall nem szed ki. De ugyanaz a hiba.
Ez most nagyon felmérgelt. Tegnap 8-ig fejlesztettem majd vettem észre, hogy valami nem jó, mert az nem lehetett programhiba. Akkor még az Mplabbal írtam. A sokadik után néztem a Pickit2-ben és akkor vált világossá, hogy nyilván ez a baja, DE MI??
Probaltad mar, hogy a Project menuben elobb egy Clear-t csinalsz?
A 887_1.jpg képen azért van a sárga figyelmeztetés, mert a hex állomány olyan címeken is tartalmaz adatot, ami nincs kiépítve a kontrollerben. A többi képen a _DEBUG szimbólum definiáltságára figyelmeztető üzenetek vannak. Csak azt tudom leképzelni, hogy a debugger programrészlete miatt lett nagyobb a kód, mint ami beférne a tárba. Persze az is lehet, hogy nem a 16F887 -re "Release" módban fordított hex -et töltöd be / tölti be automatikusan a PICKit2 program.
Igen próbáltam. Ráadásul most egy másik gépen is fenn van az Mplab 8.84 és ott fordítottam le friss telepítéssel és UGYANAZ!
Az "out of date csak" annyit jelent, hogy újra kell fordítani a programot. Ez miről árulkodik?
Csinálj a szerkesztéskor .map fájlt. Azt bogarászva csak kiderül, hogy mi és hova esik. Esetleg vedd ki a pipát a supress .COD generation elől.
-Mplab: Hozz létre egy teljesen új projectet a 8.84 -gyel a fordításhoz és azzal fordíts Release módban.
-PICKit2: Ellenőrizd le, hogy le van tiltva a hex állomány indítás utáni automatikus betöltése. A fordítás után magad válaszd ki azt a hex -et, amit az MpLab fordított. Ha a fentiek nem segítenek, akkor megtörténhet, hogy a PICKit2 nyomógombjához rendeltél hex betöltési funkciót. A gomb megnyomására valami más hex -et tölt be. A nyomógomb nem zárt állandóan? Ekkor azonban az USB csatlakoztatásakor a firmware frissítés módba kellene menjen a PICKit2.
Próbálkoztam azzal is, még mindig megvan a sárga hiba üzenet. lövésem sincs mi lehet.
Nem rendeltem a gombhoz semmit, nem indul el frissítési módban. Ellenőriztem a Logic Tool- al is ami megszakítja a capture módját ha nincs jel és megnyomom a gombot. Korábban írt 887-es program hex file-ja az hiba üzenet nélkül bejön. Most megcsinálom amit írtál de a fentiek mellett hát .. remélem.
Megcsináltam. A kép ha segít.
Szia!
A error.jpg -n az látszik, hogy a E:\ ... \ttttt\error.o az object állomány, de a D:\Picproj\error.cof -ot tölti be a linker. Nem az E:\ ... \ttttt\error.cof lesz az, amit a assembler fordít? Egy hasonló programnak igewn rövid a hex állománya:
A tiéd az nem sír. Valószínűleg értem a problémát. De akkor mit kellene át állítani vagy beállítani?
Az mcp-betöltöm akkor nekem már megint rosszul fordít, de a hex az jó.
Rövidebb elérési utak?
1. Errol az egyszeru programrol csinalj egy disassemby-t az MPLAB-bal es attacheld, hatha latunk valami erdekeset
2. MAP file-t is attacheld, hatha latunk valamit 3. Ellenorizd a Toolsuit-ben, hogy milyen konyvtarak vannak beallitva 4. Ellenorizd a Project Settingsben, hogy milyen konyvtarak vannak beallitva 5. COF file-hoz ne hasznalj 67 karakternel hosszabb eleresi utvonalakat (tehat a Project konyvtarad pl E:\Projects\Errors\ legyen, ne egy hosszu path) 6. Probd ki ujabb vagy akar regebbi MPLAB-bal
Ellenőriztem a mappákat, nem tudom mi az hogy attachelni. Csatolom amit behoz a Pickit2-be.
attach = csatolás
Csatoltam a fájlokat
Valami nem volt egészen rendben vagy az áramköröddel, vagy a programoddal. Ha úgy csinálod, hogy a kijelző frissítése előtt kikapcsolod az aktuális digitet, kiírod a szegmensvezetékekre a következő digithez való értéket, majd csak ezután kapcsolod be a következő digitet, akkor valamit nagyon el kell méretezni ahhoz, hogy a kijelzőn egybefolyjanak a karakterek. Egyébként a tranzisztorokat lehet használni emitterkövetőként (közös kollektoros alapkapcsolás), akkor a tranzisztorok telítődésének problémája automatikusan megszűnik, valamint a bázisellenállásokat is ezzel megspórolod. Persze nem mondom, hogy nem lehet ez, de néhány kHz frissítési sebességig a szokásos BC546 és társai tranzisztorok bőven megfelelő sebességűek.
A valóságban nem próbáltam ki hogy működik e jelenleg nem volt megoldható. Csak az MPlabban szimuláltam ott nem következett be semmi. A debugger settingsbe WDT-be break and warning van beállítva de se szünet se figyelmeztetés nincs 18 ms a beállított érték.
A konfig: BCFSTATUS,RP0 CLRFTMR0 BSFSTATUS,RP0 CLRWDT MOVLWB'11111000' MOVWFOPTION_REG BCFSTATUS,RP0 CLRWDT nincs magában a programban így rezetelnie kellene. (Maximum kipróbálhatom egy sima villogós programban is de szerintem akkor sem fog működni vagy valami nincs beállítva vagy valami kihagytam, de leírások alapján úgy láttam ezek után működnie kell. Az Mplabba be van kapcsolva a wdt így tanácstalan vagyok.)
Rendben. Most ez annyira nemfontos mert program az megy és Mplaban alkalmazott Pickit2-vel megy mind a 8 digit. de már a nem is tudom hanyadik verziószámú Mplab sem oldotta meg a problémát a sárga Pickit2- s probléma az eszköz méretére ugyanúgy megvan-!!!
Az alábbi programmal nálam működik a Watchdog (PIC18F14K50). Ha a DEBUG opcióknál 1 MHz-et hazudok, akkor 1000 utasításciklus után bekövetkezik a Watchdog timeout. Ott le is állt a szimuláció, nem foglalkoztam vele, hogy mit lehet kezdeni vele...
Nekem 876-hoz kellene a 16f sorozatból 20Mhz a beállított órajel. Igaz én asm-ben írtam a progit de nem működik
Ez nem konfig, ez egy program -- inicializacionak nez ki, de ez nem a konfiguracio!
Annak valami ilyesminek kellene lennie:
Az én konfigom ilyen:
__CONFIG _HS_OSC&_CP_OFF&_WDT_ON&_LVP_OFF
Szia!
Van rá egy konfiguráló ablak az MpLab SIM beállításai között: |
Bejelentkezés
Hirdetés |