Fórum témák
» Több friss téma |
Próbáld meg manuálisan felismertetni ...
Igen piros ott feljebb modosítotam a szöveget Nem most már nem 34ff
Sziasztok,
szeretnék egy megszakítási rutint kapcsolni a timer0-hoz. Csatoltam a kódot, amit írtam és nem működik ![]() a "void interrupt timer0_isr(void)" helyes egyáltalán? A neten találtam olyat, hogy "void interrupt()", "void isr()" stb. előre is köszönöm a segítséget és boldog karácsonyt!!!
Akkor keresd meg a beállítások közt és írd át valami 54ff re a "számot" Engem egy12f675 szivatott így de nekem csak az írás volt sikertelen . Aztán egy másik picet betéve megnéztem a számot és azt beírva a "hibás" is megjavult , Viszont ha voltage level errort ír akkor vagy zárlat van valhol a táp résznél vagy fordítva van a pic
A vpp alap állapotban hová van beállítva ? a kockában 5v ot kell látnod. Nem lehet hogy "minden jó" csak véletlenül fordítva van a pic ?
Most elméletileg sikerült de az oscal pirosba 14FF
Van másik ilyen piced ? tedd be és nézd meg a "kódját"
Aztán tedd ezt vissza és írd be neki is azt a kódot .
Igen de most 14FF-et irt és zöldbe van hogy fel progizta automatán
A 0x14FF egy bsf 0x3F,1 utasítás kódja, de ide a 0x34FF retlw 0xFF kellene.
Ha a programod előírás szerint erre a címre végrehajt egy call utasítást, akkor nem tér vissza, hanem a pc átfordul és megint a call -ra fog futni, azaz a programja nem indul el. Ha a program nem törődik a kalibrálással, akkor az utasítás teljesen felesleges...
Huu ebből nem sokat értetem elmagyaráznád légyszíves nagyon kezdő vagyok még a picel kapcsolatba de mi lehet a hiba??
OSCCAL: Egy regiszter a belső oszcillátor kalibrálására. A kalibrációs érték minden kontrollerre egyedi lehet, a gyártó egyes típusoknál az utolsó memória szóban előre programozva szállítja a kontrolleret. Azok a típusok, amik 0 címről indulnak, itt egy "retlv adat" alakú utasítást tartalmaznak, aminek az adat része a kalibrációs érték, amit az OSCCAl regiszterbe kell tölteni.
A programozó program feladata törlés előtt az adat kiolvasása, tárolása a törlés idejére, majd visszaprogramozása a legutolsó memória szóba. A kontroller programját író feladata (amennyiben belső a oszcillátort használja és fontos a pontos időzítés), hogy a kalibrációs értéket kiolvassa és beírja az OSCCAL regiszterbe. Az érték kiolvasása egy, az utolsó memóriaszóra vonatkozó szubrutin hívással (call) lehetséges, emiatt kell, hogy az ott tárolt utasítás retlw adat, azaz szubrutinból való visszatérő utasítás legyen. Abban az esetben, ha a programban megvan a hívás a kalibrációs adat kiolvasására, de az OSCCAL kalibrációs érték hibás, nem retlw utasítás, a program elindul, eljut a kiolvasás szubrutin hívásához, meghívja a legutolsó program memóriaszót, mint szubrutint, onnan nem tér vissza a hívó call utánra, hanem a memória legelső szavára (0 címre) fordul át a vezérlés és kezdődik minen előlről. Ekkor a program nem tud rendesen elindulni.
Gondolom T0IE = 0 helyett T0IE = 1 a helyes, de sajnos még így sem működik
![]()
Oks köszönöm szépen végül is sikerült de még aszt szeretném meg kérdezni hogy kell használni a eredeti pickit 2vel a programmer go to funkciót?
Hát próbáltam de többet értek belőle angolul mint ezzel.. :/
Na de annyit meg tudod mondani hogy mikor villog a traget utána meg a busy akkor "mivan" mert a traget folyamatosan villog??
Sziasztok,
a probléma, mint amit tegnap felvetettem félig- meddig megoldódott. Ha a csatolt kódot az MPLAB-ben programozom fel (programmer/program) és utána az MCLR-t Vdd-re húzom (a pickit2 program toolbar-on lévő gombbal) akkor működik a megszakítás. WTF? A pickit2 v2.61 segítségével programoztam fel eddig a .hex állományokat és semmi problémám nem volt vele (na jó, csak pár napot használtam még). Most is felmennek rá azok az egyszerű programok, amikben nincs megszakítás. Az MPLAB-es programozással az a problémám, hogy ha a pickit2-t lehúzom az USB-ről, majd visszadugom akkor nem indul újra a program. Erre van valami épkézláb magyarázat? köszönöm.
Idézet: „Az MPLAB-es programozással az a problémám, hogy ha a pickit2-t lehúzom az USB-ről, majd visszadugom akkor nem indul újra a program.” Ez igaz a pickit2 v2.61-re is. Mivel onnan kap tápot a modul ezért ha lehúzom meg visszadugom így is úgy is, vissza kell kapcsolni a tápot. Szóval ez a probléma is kilőve, marad a kérdés, hogy miért csak az MPLAB-on belül működik a hex file.
Én is jártam már úgy programmal hogy a pickit 2 vel indítva nem indult ,de külső tápról (vagy a kész áramkörben) tökéletesen működött . Én nem tudtam rájönni mitől van ez
ezért ha egy program megy szimulátorban , és nem megy beégetés után a pickitről akkor mindig kipróbálom külső tápról és az esetek 98%ában beindul .
kösz szépen a választ! Feleslegesen * m egy napot és teljesen véletlenül jöttem rá, hogy MPLAB-ben müködik
![]() ![]() Sebaj ezentúl a pickit2 égetőt SW-t hanyagolni fogom.
Nem kell hanyagolni ! Nagyon kevés az olyan progi ami nem indul vele . 1000 ből egy de a szíved joga hogy azt az égetőprogramot használd ami neked jó .
i gazad van. Azért írtam, hogy hanyagolom, mert nekem ez volt kb az ötödik programom amit írtam és ezzel gondom volt, az mplab-ben meg tökéletesen működött.
Lehet, hogy csak kifogtam az 1000-ből 1-et ![]() |
Bejelentkezés
Hirdetés |