Elektroonikafoorum.com
IOC proses PIC16F1509 - Printerisõbralik versioon

+- Elektroonikafoorum.com (https://elektroonikafoorum.com)
+-- Foorum: Arutelud (https://elektroonikafoorum.com/forum-3.html)
+--- Foorum: Programmeerimine (https://elektroonikafoorum.com/forum-5.html)
+--- Teema: IOC proses PIC16F1509 (/thread-515.html)



IOC proses PIC16F1509 - felch - 25-10-2013

Interrupt on change ei taha kuidagi tööle hakata kuigi olen isegi prose manuaali lugenud (sic !) Smile
Kivil on edev võimalus valida, millist fronti parasjagu detektitakse. Selle registri laadisin ja simu näitab et sisu õige. Samuti muudel asjasse puutuvatel registritel.
Ootan esmalt PORTA,5 ja/või PORTA,4 vastuvõtja + fronti et asuda mõõtma pulsi kestust. Kui front leitud, ootan - fronti ja siis loen taimerist aja.
Paraku ei teki IOC katkestus mitte kuidagi. Muud katkestused tekivad.
Võimalik, et MPLAB SIM on liiga beeta selle kivi jaoks (on olnud mõnede prosede puhul) aga reaalsel raual samuti toda katkestust ei teki (ja teised tekivad).
Errata PDF ei räägi midagi, Microchipi foorumis oli 1 tüübil sarnane probleem aga ta lahendas asja teise prose kasutusele võtuga...
PIC12F1480-l on samasugune IOC süsteem ja töötab kenasti.
Millest ma üle vaatan... ?
Kood: http://parsek.yf.ttu.ee/~felc/rc_switch_1.asm


RE: IOC proses PIC16F1509 - andrei - 26-10-2013

Mul seda konkreetset PIC-i käepärast pole, aga IOCIF on read-only bitt INTCON-is, kuid koodis on "bcf INTCON, IOCIF"...

IOCIF biti nullimiseks tuleb nullida bitid IOCAF/IOCBF-is. Ehk hakkab hargnema.


RE: IOC proses PIC16F1509 - felch - 28-10-2013

(26-10-2013, 09:23 PM)andrei Kirjutas: Mul seda konkreetset PIC-i käepärast pole, aga IOCIF on read-only bitt INTCON-is, kuid koodis on "bcf INTCON, IOCIF"...

IOCIF biti nullimiseks tuleb nullida bitid IOCAF/IOCBF-is. Ehk hakkab hargnema.


Paraku ei aidanud.
Huvitav on veel see, et kui prose konfi sõnad on koodi alguses, antakse viga (progr. word too large, truncated to core size) aga hex-i läheb õige asi. Tõstes samad read koodi lõppu, vigu ei anta aga hex-is "fusesid" ka enam pole. MPLAB SIM vist vähe bugine?


RE: IOC proses PIC16F1509 - andrei - 29-10-2013

Veel torkas silma, et katkestust teenindavas RCint funktsioonis kiikad küll alguses korra IOCAF-i, aga pärast kontrollid hoopis IOCAP/IOCAN-i. Kas ei peaks nii olema, et tõusva ja laskuva frondi eristamiseks tuleb katkestuses piiluda nii IOCAF/IOCBF-i kui ka vastavat sisendit (Sul defineeritud CH1 ja CH2, kui ma õigesti aru sain) ja IOCAP/IOCAN-i võib kõrvale jätta?


RE: IOC proses PIC16F1509 - felch - 29-10-2013

(29-10-2013, 08:28 AM)andrei Kirjutas: Veel torkas silma, et katkestust teenindavas RCint funktsioonis kiikad küll alguses korra IOCAF-i, aga pärast kontrollid hoopis IOCAP/IOCAN-i. Kas ei peaks nii olema, et tõusva ja laskuva frondi eristamiseks tuleb katkestuses piiluda nii IOCAF/IOCBF-i kui ka vastavat sisendit (Sul defineeritud CH1 ja CH2, kui ma õigesti aru sain) ja IOCAP/IOCAN-i võib kõrvale jätta?
Pmst õige. Ma tegin siiski nii, et kontrollin IOCAP/IOCAN meenutamaks, millist fronti ootasin. Tegutsen vastavalt. IOCAF annab üldise signaali et oli sisendite muutuse katkestus.
Paraku aga ei taha nimetet katckestust üldse tekkida, raua peal samuti mitte...


RE: IOC proses PIC16F1509 - felch - 29-10-2013

(29-10-2013, 08:59 AM)felch Kirjutas: Paraku aga ei taha nimetet katckestust üldse tekkida, raua peal samuti mitte...
Lisaks selgus, et "tavaline" INTE ehk väliskatkestus ei toimi samuti. Ei simus ega ka rauas. Kõik mainitud pinnid on pordi A küljes. Miski asi, mida ma ei suuda märgata....