<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Other NXP ProductsのトピックMPC5644a PIT interrupt</title>
    <link>https://community.nxp.com/t5/Other-NXP-Products/MPC5644a-PIT-interrupt/m-p/298872#M2965</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am developing PIT interrupt on mpc564xa kit.&lt;/P&gt;&lt;P&gt;The problem is that PIT interrupt never happen.&lt;/P&gt;&lt;P&gt;Can someone help me solve this?&lt;/P&gt;&lt;P&gt;TKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13951947822438526" jivemacro_uid="_13951947822438526" modifiedtitle="true"&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;#include "MPC5644A.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Pit0ISR(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void initINTC(void) {&lt;/P&gt;&lt;P&gt;/* Use one the following two lines */&lt;/P&gt;&lt;P&gt;/*INTC.MCR.B.HVEN_PRC0 = 1;*//* MPC551x: initialize Proc'r 0 for HW vector mosde */&lt;/P&gt;&lt;P&gt;&amp;nbsp; INTC.MCR.B.HVEN = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC555x: initialize Proc'r 0 for HW vector mosde */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void enableIrq(void) {&lt;/P&gt;&lt;P&gt;/* Use one of the following two lines to lower the INTC current priority */&lt;/P&gt;&lt;P&gt;//INTC.CPR_PRC0.B.PRI = 0;&amp;nbsp;&amp;nbsp; /* MPC551x: Lower INTC's current priority */&lt;/P&gt;&lt;P&gt;&amp;nbsp; INTC.CPR.B.PRI = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC555x: Lower INTC's current priority */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; asm(" wrteei 1");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable external interrupts */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int ii =0;&lt;/P&gt;&lt;P&gt;void Pit0ISR(void) {&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ii++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; PIT.TIMER[0].TFLG.B.TIF = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC56xxP/B/S: CLear PIT 1 flag by writing 1 */&amp;nbsp; &lt;/P&gt;&lt;P&gt;} &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; volatile int i = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.EMODE = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.CLKCFG = 7;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.EPREDIV = 8;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.EMFD = 80;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FMPLL.ESYNCR2.B.ERFD = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //while (FMPLL.SYNSR.B.LOCK != 1) {};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIU.SYSDIV.B.SYSCLKDIV = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FMPLL.ESYNCR1.B.CLKCFG = 0X7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Change clk to PLL normal mode from crystal */&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FMPLL.SYNCR.R = 0x16080000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 MHz xtal: 0x16080000; 40MHz: 0x46100000 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //while (FMPLL.SYNSR.B.LOCK != 1) {}; /* Wait for FMPLL to LOCK&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FMPLL.SYNCR.R = 0x16000000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 MHz xtal: 0x16000000; 40MHz: 0x46080000 */&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SIU.SYSCLK.B.SYSCLKSEL = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //----------disable watchdog--------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWT.SR.R = 0xC520;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWT.SR.R = 0xD928;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWT.MCR.B.WEN = 0; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-----------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.PITMCR.B.MDIS = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.TIMER[0].LDVAL.R = 0x00FF; // setup timer 1 for 256000 cycles &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.TIMER[0].TCTRL.B.TIE = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.TIMER[0].TCTRL.B.TEN = 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTC.PSR[301].R = 1; //for timer0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; initINTC();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize INTC for hardware vector mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTC_InitINTCInterrupts();&amp;nbsp;&amp;nbsp;&amp;nbsp; // Init interrupts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTC_InstallINTCInterruptHandler(Pit0ISR, 301, 1); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enableIrq(); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Loop forever */&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (;;) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 19 Mar 2014 02:08:36 GMT</pubDate>
    <dc:creator>stanleyli</dc:creator>
    <dc:date>2014-03-19T02:08:36Z</dc:date>
    <item>
      <title>MPC5644a PIT interrupt</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/MPC5644a-PIT-interrupt/m-p/298872#M2965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am developing PIT interrupt on mpc564xa kit.&lt;/P&gt;&lt;P&gt;The problem is that PIT interrupt never happen.&lt;/P&gt;&lt;P&gt;Can someone help me solve this?&lt;/P&gt;&lt;P&gt;TKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13951947822438526" jivemacro_uid="_13951947822438526" modifiedtitle="true"&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;#include "MPC5644A.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Pit0ISR(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void initINTC(void) {&lt;/P&gt;&lt;P&gt;/* Use one the following two lines */&lt;/P&gt;&lt;P&gt;/*INTC.MCR.B.HVEN_PRC0 = 1;*//* MPC551x: initialize Proc'r 0 for HW vector mosde */&lt;/P&gt;&lt;P&gt;&amp;nbsp; INTC.MCR.B.HVEN = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC555x: initialize Proc'r 0 for HW vector mosde */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void enableIrq(void) {&lt;/P&gt;&lt;P&gt;/* Use one of the following two lines to lower the INTC current priority */&lt;/P&gt;&lt;P&gt;//INTC.CPR_PRC0.B.PRI = 0;&amp;nbsp;&amp;nbsp; /* MPC551x: Lower INTC's current priority */&lt;/P&gt;&lt;P&gt;&amp;nbsp; INTC.CPR.B.PRI = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC555x: Lower INTC's current priority */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; asm(" wrteei 1");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable external interrupts */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int ii =0;&lt;/P&gt;&lt;P&gt;void Pit0ISR(void) {&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ii++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; PIT.TIMER[0].TFLG.B.TIF = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPC56xxP/B/S: CLear PIT 1 flag by writing 1 */&amp;nbsp; &lt;/P&gt;&lt;P&gt;} &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; volatile int i = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.EMODE = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.CLKCFG = 7;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.EPREDIV = 8;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FMPLL.ESYNCR1.B.EMFD = 80;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FMPLL.ESYNCR2.B.ERFD = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //while (FMPLL.SYNSR.B.LOCK != 1) {};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIU.SYSDIV.B.SYSCLKDIV = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FMPLL.ESYNCR1.B.CLKCFG = 0X7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Change clk to PLL normal mode from crystal */&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FMPLL.SYNCR.R = 0x16080000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 MHz xtal: 0x16080000; 40MHz: 0x46100000 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //while (FMPLL.SYNSR.B.LOCK != 1) {}; /* Wait for FMPLL to LOCK&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FMPLL.SYNCR.R = 0x16000000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 MHz xtal: 0x16000000; 40MHz: 0x46080000 */&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SIU.SYSCLK.B.SYSCLKSEL = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //----------disable watchdog--------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWT.SR.R = 0xC520;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWT.SR.R = 0xD928;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SWT.MCR.B.WEN = 0; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-----------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.PITMCR.B.MDIS = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.TIMER[0].LDVAL.R = 0x00FF; // setup timer 1 for 256000 cycles &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.TIMER[0].TCTRL.B.TIE = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT.TIMER[0].TCTRL.B.TEN = 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTC.PSR[301].R = 1; //for timer0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; initINTC();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize INTC for hardware vector mode */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTC_InitINTCInterrupts();&amp;nbsp;&amp;nbsp;&amp;nbsp; // Init interrupts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTC_InstallINTCInterruptHandler(Pit0ISR, 301, 1); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enableIrq(); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Loop forever */&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (;;) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Mar 2014 02:08:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/MPC5644a-PIT-interrupt/m-p/298872#M2965</guid>
      <dc:creator>stanleyli</dc:creator>
      <dc:date>2014-03-19T02:08:36Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5644a PIT interrupt</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/MPC5644a-PIT-interrupt/m-p/298873#M2966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #002060;"&gt;I am missing your &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: #002060;"&gt;INTC_InitINTCInterrupts and INTC_InstallINTCInterruptHandler functions. So I can only guess without full project what is wrong.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-GB" style="color: #002060;"&gt;Below are few steps you can check.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #002060;"&gt;First of all:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL style="list-style-type: decimal;"&gt;&lt;LI&gt;&lt;SPAN style="color: #002060;"&gt;Check if your flag TIF is set when PIT counts to 0.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN style="color: #002060;"&gt;I see that you enable EE in core. That’s correct.&lt;/SPAN&gt;&lt;/P&gt;&lt;OL style="list-style-type: decimal;"&gt;&lt;LI&gt;&lt;SPAN style="color: #002060;"&gt;When your PIT set the flag TIF = 1 the interrupt handler is called.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="color: #002060;"&gt;The upper half of the interrupt vector prefix register (IVPR) is added to an offset, which corresponds to the peripheral or software interrupt source that caused the interrupt request. The offset matches the value in the Interrupt Vector field, INTC_IACKR[INTVEC]. So do you see INTC_IACKR[INTVEC] = 301 in decimal when TIF is set?&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Mar 2014 12:55:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/MPC5644a-PIT-interrupt/m-p/298873#M2966</guid>
      <dc:creator>petervlna</dc:creator>
      <dc:date>2014-03-20T12:55:34Z</dc:date>
    </item>
  </channel>
</rss>

