Fórum témák
» Több friss téma |
A TMR1 es a CAPTURE segitsegevel viszonylag konnyu megoldani.
Köszi a válasz, csak azért ennél többre lenne szükségem.
Mi az a CAPTURE? és a viszonylag könnyű megoldás konkrétabban mit jelent? A hozzászólás módosítva: Máj 19, 2014
Idézet: „Igaz, felhúzó.....” Nem, lehúzót használsz. Ha földre húzod lehúzod, a tápra húzod felhúzod. Te lehúzod. Aktív 1 logikát használ a keypadod. Bár a mikrokontrolleres környezetben valóban inkább a felhúzást szokták alkalmazni és aktív 0 logikát, de így is működnie kell. Ráadásul a proteusos keypadot nem tudom át lehet-e állítani aktív 0-ra. Azt viszont nem értem, hogy az ozlopokat lehúztad a sorokat meg nem. Legalábbis a kapcsoláson amit beraktál azon nincs. Ami az elakadást illeti, tuti, hogy valahol elakad a progam, ezt bizonyítsa az is, hogy ha a watchdog megy akkor resetel, tudja a watchdogot törölni. Egy kód segítene a felderítésben, vagy mint írták előttem a szakemberek, tegyél bele nyomkövetést. A hozzászólás módosítva: Máj 19, 2014
Nem tudtam módosítani, kimaradt a nem szó a watchdog törlése elől.
Ha privatba at kuldom delutan az asm kodot akkor at tudod nekem javitani? Mert az igazsag az hogy en ehhez nem ertek :/
Hello!
Ha arra gondolsz amit vilmosd javasolt akkor természetesen meg tudnám csinálni, nem bonyolult, de nincs időm vele foglalkozni, tele vagyok munkával. Sajálom. Kérd meg őt vagy valaki mást.
Ugye van adatlapod a PIC-hez? Keress benne ilyet :CAPTURE/COMPARE/PWM
MODULES. Neked a Capture mod hasznalhato. El kell inditani a TMR1-et a megfelelo sebesseggel. a CCPx lab valtozasanak hatasara (felfuto, vagy lefuto) a TMR1 aktualis erteke beirodik a CCPRx regiszterbe, es ezt csinalja minden valtozasra. Bonuszkent meg interruptot is csinal. Az interrupt lekezelesenel ki kell szamolni a regi es az uj ertek kulonbseget, majd ebbol kiszamolhatod a ket jel kozott eltelt idot.
Es valami szuper titkos a program, hogy nem tudod ide feltenni?
"Azt viszont nem értem, hogy az oszlopokat lehúztad a sorokat meg nem."
Sorokat emelem egyesével magas szintre LAT regiszterrel. (Kimenet) Oszlopokat ellenőrzőm PORT regiszterrel. (Bemenet) 4.7K-s ellenállással lehúzom a bemeneteket földre, hogy ne lebegjen. Kimeneteket elé nem tettem semmit, de kipróbáltam 470Ohm ellenállással is földre húzva. Semmi változás. Ha nincs ott ellenállás akkor nincs random leakadás. Képen minden látszik..., még mindig nem jöttem rá a hiba okára pedig már majdnem mindent átírtam.
Én mindenképp program hibára gyanakodnék. Ha publikus, akkor rakd fel ide a programot. Vagy legalábbis a gombkezelő részét!
Dehogy szuper titkos csak telefonrol vagyok mert dolgozok egy sima szamodra egyszeru pic16f84-re irott ora.....csak nekem a pic programozas magas....
Bocsanat melle nyomtam a valaszt :/
Nem gond mutatom a kódot:
Csak a lényeget osztom meg, hogy ne legyen sok a kód..
Ezek a függvények. Természetesen a megfelelő regiszterek be vannak állítva mint az A PORT kimenetre, B PORT 0:3-ig kimenet, 4:7-ig bemenet. A program pedig így hívja meg:
Gyakorlatilag ez minden. Random leakad valamiért. A hozzászólás módosítva: Máj 19, 2014
Köszönöm az esetleges segítő szándékot, de közben megoldottam a dolgot. Thanks..
A hozzászólás módosítva: Máj 19, 2014
Épp akartam válaszolni, de akkor már mindegy.
Mi volt a gond, illetve a megoldás? A hozzászólás módosítva: Máj 19, 2014
Szia!
Megbocsáss... Segítséget kérsz, de nem adod meg, amit kérnek töled. A programot nem töltöd fel. A segítséget nyújtó nem látja át a programodat... Azt ajánlom, amit a segíteni próbálók is tennének, ha meg lenne a teljes programod (legalább az a minimális része, ami a lefagyást produkálja). Fogd a programot, készíts neki egy MpLab(X) project -et, állítsd be az MpLab SIM -et debuggernek. Tegyél töréspontot a kritikus részekre (megszakítás belépési pontja, stb). Indítsd el a programodat. Figyeld, meddig jut el. Ha sokáig nem jut el valamelyik pontra, állítsd meg, léptesd utasításonként, nézd meg merre bóklászik. Esetleg az egész programot léptesd utasításonként. Ha kell állíts be stimulusokat, hogy a gombnyomásokat is szimuláld. Ha ez túl bonyolult, végy fel a néhány változót és azokat használd a portok helyett. Ezekben a változókban beállíthatod, melyik gomb legyen megnyomva...
ohhh azt hittem nem érdekel senkit a dolog.
A kódnak semmi baja nincs, késleltetést kellett csak bele csempésznem az egyes sorok vizsgálatához. Bosszantó kis hiba, de ebből tanul az ember... Most tesztelem és nem produkált eddig akadást...
Olvass feljebb ott a kód ami sz***ott.
Mindent megadtam ami szükséges volt, de mivel közel 3000soros a teljes program nem akartam senki idejét vele rabolni és múltkor sem vezetett eredményre. Bátorkodtam azt a program részt ide bemásolni amelyben a hiba van, hogy áttekinthető és lényegre vezető legyen. Mindent amit említettél kipróbáltam, soronkénti debugot, töréspontokat és miegymást. Semmi nem vezetett eredményre. Egy kis időzítés megoldotta a gondot. Borzasztó 2napon vagyok túl. Köszönöm mindenkinek aki segített vagy akinek ez volt a szándéka.. A hozzászólás módosítva: Máj 19, 2014
Köszi a segítséget. Még nem igazán értem, de próbálkozom.
Van valami kapcsrajz? Mert az jo lenne ha tudnank hova van kotve a kijelzo. Gondolom a RB-re, de az 8 bit szeles, a kijelzo pedig 7 bites. Es meg a mux jeleket is forditva kellene kiadni.
Én úgy látom a táblázat kezelése alapján, hogy a PORTB-re és csak a 0. bitet nem változtatja ( bár azt írja az 'a' szegmensnek! ) !
szerk. később bitállítással úgy látom azt is működteti! A hozzászólás módosítva: Máj 20, 2014
Na ja, ge a RA is hasznalva van, es ott is meg kell forditani a mux jelekett. Persze ki lehet silabizalni a dolgokat a progibol, de az ido, ami deraga dolog.
Ha rákattintasz, kiderül.
Nekem telefonrol nem nyitja meg azert irtam hogy remelem sikerult
Üdv!
Gondoltam kipróbálom a PIC-ezést,de még egy egyszerű led villogattós példaprogramot sem tudok lefordítani,mindig valami hibát ír. (MPLAB v8.92/ PICkit2 /PIC16F690) Próbáltam Assembly-ben és C-ben is,természetesen a megfelelő compilert használva. Valaki tudna esetleg segíteni? (lehet hogy tettek már fel hasonló kérdést,de 532 oldalt végigböngészni sajnos nincs időm)
Szia!
Mikor ír hibát? A program lefordításakor vagy már a beégetésnél? Ha a fordításkor, akkor rakd fel a programot. Lehet hogy csak valami szintaktikai hibát követtél el. Ha a beégetéskor, akkor meg lehet, hogy a bekötés a rossz. Szerk.: Figyelmetlen voltam. Tehát a programmal van gond. Rakd fel, ránézek. A hozzászólás módosítva: Máj 20, 2014
Idézet: Erre csak akkor van esély, ha megírod (vagy idemásolod), hogy mi is volt az a "valami hiba", amit az MPLAB kiírt. „Valaki tudna esetleg segíteni?” A hozzászólás módosítva: Máj 20, 2014
Az itt található példaprogramot másoltam be, csak a header fájl nevét írtam át, persze be is társítottam azt a project mellé. A hiba pedig még a fordításnál jelentkezik :/
Bővebben: Link A hozzászólás módosítva: Máj 20, 2014
|
Bejelentkezés
Hirdetés |