Fórum témák
» Több friss téma |
De most azért nem volt törölve, mert csak tesztelném, hogy kapcsolgat-e másodpercenként. Időzítés eseten TMR2IE-t visszaállítom 0-ra.
Elkezdtél belekeveredni a dologba..
A TMR2IE regiszterrel tudod ki/be kapcsolni a timert. A TMR2IF regiszter pedig jelzi, hogy éppen megszakításban van e vagy sem. Tehát a TMR2IE regiszterbe írj egy 1-est vagy is elindítod timer2-őt. Majd az utolsó isr-es módosításomat használd. Ez végtelen fogja másodpercenként kapcsolgatni a relét ki és be..
Tényleg, köszi, így már az időzítés megfelelően fut, másodpercenként kapcsol oda-vissza a relé.
Idézet a 18F14K22 adatlapjából (DS41365E):
Idézet: „Data EEPROM Memory ED Byte Endurance 100K Program Flash Memory EP Cell Endurance 10k” A 18F14K22 256 byte RAM memóriával rendelkezik. Mind a 256 byte elérhető a BSR regiszter felhasználásával (BANKED). A 0x00 .. 0x5F tartomány ezenkívül az ACCESS bankon keresztül is elérhető (ACCESS). Az ACCESS bank 0x60..0xff tarományában a speciális regiszterek érhetők el, de ezek a regiszterek BANKED módszerrel a 15. bankban is elérhetők. ld. Memory organization fejezet az adatlapban. Indirekt eléréssel az egész 0. lap (0x00 .. 0xFF címen levő byte -ok) elérhető.
A hozzászólás módosítva: Márc 4, 2015
Jó annak, aki érti amit olvas. Sajna az én angol tudásom majdnem a 0 felé konvergál, ezáltal az adatlap szövegének jó ha a 20%-át felfogom.
Tehát nem vitatkozni akarok veled, csak a tudásod morzsáiból csipegetnék. Tehát kérlek segíts. Megpróbáltam adatot bevinni a RAM-ba, majd onnan kiolvasni, de felettébb érdekes eredményeket kaptam. A 0x5F feletti tartománnyal egyáltalán nem boldogultam, az alattalévőből pedig nem onnan kerültek elő az adatok, mint ahova az FSR0 címzésével elvileg beraktam. Biztos, hogy én szúrok el valamit, de nem tudom, hogy mit. Még kisérletezem egy darabig, de ha nem jutok dűlőre, feltöltöm amit eddig csináltam, és megkérlek, hogy nézd át.
Még egy kérdésem lenne. Tettem bele egy aktív változót, ami meggátolja, hogy visszaszámolás közben a véletlen gomblenyomás hatására átmatassam az időt. Valamint ennek a változónak az értékváltozásával a megszakításon kívülre tettem a buzzer csipogását. Viszont ez sajnos nem csipog így egyáltalán. Már direktben is kapja az 5V-ot a bc337-en keresztül, de sajnos semmi hangja. Az interupton belül még volt egy halk kis pittyenés, de amúgy semmi.
Pedig kellene tízszer csippannia. Nem értem, hogy miért csinálja, mert amikor a pic-et arra utasítottam, hogy folyamatosan kapcsolja be a meghajtó tranzisztort, akkor is csak egyet csippanik, nem sípol folyamatosan. Hogy tudnám szóra bírni? A hozzászólás módosítva: Márc 4, 2015
Kicsit több idő kell neki.. Csippan az, de olyan gyorsan, hogy nem is hallod
Próbáld 50-100-150-200ms-on.
Milyen programmal próbáltad? Állítsd be az MpLab -ban a MpSim -et debuggernek, fordítsd le újra a programot. Ezek után lépésenként (is) végrehajthatod és közben nézheted mi történik a regiszterekkel és a memóriákkal.
A hozzászólás módosítva: Márc 4, 2015
Nem, sajnos még nem rég foglalkozok pic-el, programozgattam MP LAB-ban assemblyben, és nemrég kezdtem el c-vel foglalkozni, főbb rutinokat, ciklusokat megismerni. Rendelkezésemre áll microC fejlesztőkörnyezet. Eddigi programjaim futófények, és hasonló egyszerűbb programok voltak. Még ilyet nem igazán csináltam. Tehát a routerben található adatokat (mint IP, Subnet mask stb) be kellene vinnem az EEPROMBA és, így ismerné fel az eszközt? De milyen módon vigyem be? Találtam EEPROM író/olvasó utasításokat a microC library-ben, de azokat a program írás közben használhatom fel, viszont nekem ugye csak egy gépi-kódú hex File-om van, ezt vissza kellene fordítanom? vagy van külön funkció a fejlesztőkörnyezetben amivel az EEPROM tartalmat tudom módosítani? Megköszönném a segítséget ha letudnád írni ennek a menetét. Illetve majd az Android programban az MCU URL-t azt hol fogom megtalálni végül?
Köszönöm előre is!
Nem, ezeket az értékeket a programozóban kell bevinni, kézzel. Mivel programozod a PICet?
Easypic programozó panel áll rendelkezésemre, ezzel programozok microC-ben, illetve még van PICkit3 programozóm is.
Ó én marha! Matemetikai feladatokhoz számtalanszor használtam már a szimulátort, de most ez eszembe sem jutott. Köszi!
Szia! Köszönöm. Hardveresen mi kell a program letöltéséhez? Mi a mikrokontroller minimum hardvere?
A progra betöltéséhez egy PIC16F -eket kezelő programozó készülék - 5 vezeték. Talán az univerziális EProm programozód is ismeri ezeket a típusokat.
A kontroller, 1 db 10k felhúzó ellenállás a MCLR és a Vdd közé, 1 db 100 nF kerámia a Vdd és a Vss közé valamint a ki- és bemenetek áramkörei. Belső órajel használatakor más nem is kell.
Lehet, hogy mégis nekiveselkedek. Bár nagy a csábítás a nem PIC-es megoldás felé. Ahhoz ugyanis mindössze egy db 6megás szoftver kell. Csak a mikrokontroller drágább.
"C:\Program Files\Microchip\PICkit 3\PICkit 3.exe"
Ez a program kezeli a PICkit3 programozót. Gondolom, a mikrokontrollerben már benne van a .hex fájl, már csak az EEPROM területet kell kitölteni a leírás második oldalának alján megadott értékekkel.
Ma már csak az MpLabX csomagban levő IPE (Integrated Programing Environment) alkalmazás az egyedüli, amivel a programoz kezelhető. A PICkit3 kezelő programja elavult - tulajdonképen egy PICkit2 -t csinált belőle.
Ne szídd a PICkit2-t.
Két barátommal együtt tanuljuk a programozást. Nekem PICkit2-m van, nekik PICkit3. Nekem még sosem volt vele bajom, ők állandóan szívnak vele. A 3-asokon már a megvásárlás percében két szoftverfrissítést kellett végezni ahhoz, hogy egyáltalán működjenek. Ha valamiért ledobja az MPLAB X IDE őket, csak az IPE-vel lehet újracsatlakoztatni. Az egyedüli hátránya a 2-esnek, hogy nem minden PIC-et ismer. Amúgy meg sokkal jobb.
Én nem használom ez a trendi MPLab X szoftvert. Igaz, a legújabb kontrollerek kimaradnak így, de legalább átlátom a projekteket...
Ha újabb kontrollert terveznék, akkor a PICkit 2-t használnám. Valahol csak találni megoldást rá. A hozzászólás módosítva: Márc 5, 2015
Na de mi van akkor, ha az MPLAB X-ben kijelölök egy PIC-et, pl:12F1840 és kapásból azt jelzi, hogy a PIKkit2 nem jó hozzá?
Az csak azt jelenti, hogy az MPLAB alól nem tudod vele programozni ( másképp még lehet, hála HP41C kolléga munkásságának ! ) !
szerk: Nézz rá erre a topic-ra is ! Bővebben: Link A hozzászólás módosítva: Márc 5, 2015
A PICkit2 önálló programja képes úgy is működni, hogy figyeli a betöltendő fájlt (xxxx.hex), és ha megváltozott, az új tartalmat betölti a PIC-be. AZ MPLab-ban ilyenkor nem kell programozót beállítani...
A hozzászólás módosítva: Márc 5, 2015
Egyszer a neten találtam valahol egy olyan kapcsolást, hogy valamijen 8 lábú microcontroller belső hőméréjét haszálták arra, hogy egy hűtőbordára ragasztva a microcontrollert, az PWM-el szabályzott egy hűtőventilátort. Nem tudja valaki hogy a PIC-ekben van-e belső hőmérő, és ha igen, hogyan lehet lekérdezni?
Néhány típusban létezik, de inkább indikátornak lehet nevezni. Például a PIC12F1822/1840. Ha pontosabb szabályzás kell, akkor az MCP9700A/9701A hőmérő nem dob sokat a projekt költségén.
Eszerint nem lehet rá keresni ... --> nincs !?
Bővebben: Link
Szép ez a keresőfelület, csak azt nem tudom, hogy tudok vele rákeresni a belső hőmérőre, valamint, ha az már megvan, hogyan lehet lekérdezni.
Ha megnézed, akkor láthatóak a perifériák, csak a meglévő lehetőségek közül lehet választani ( mivel online, ezért szerintem aktuális! ),...szerintem, ha lenne belső hőmérős, akkor hirdetnék... ! Ránéztem nedudgi kolléga által javasolt PIC12F1822 adatlapjára, nem látom benne a hőmérőt...!
szerk.: utólag megtaláltam benne egy lehetőséget ! Ha megvan a választás, akkor az adatlapban azt is leírják, hogy "milyen nyelven ért" ! A hozzászólás módosítva: Márc 5, 2015
Nem csodálom, hogy nem boldogulsz vele, pedig nagyon csicsás...
Valamivel jobb itt keresgélni, de ebben is vannak hibák. Ha kiválasztottunk valamit, akkor az adatlapot még át kell bogarászni, hogy tényleg megfelelő arra, amire szántuk. |
Bejelentkezés
Hirdetés |