<?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>topic Interrupts stopped workin in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200348#M16352</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Maybe someone here can help me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was writing software and everything was working, untill at one point all my interrupts quit working.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was using full PE emulator to check my timer count minutes hours etc. But now it will never hit the ISR???&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*****************************************************************************&lt;BR /&gt;&amp;nbsp;MC9S08JM60&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Program Function:&lt;BR /&gt;&lt;BR /&gt;*****************************************************************************/&lt;BR /&gt;#include &amp;lt;hidef.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for EnableInterrupts macro&lt;BR /&gt;#include &amp;lt;MC9S08JM60.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //include peripheral declarations&lt;BR /&gt;#include "LEDDEF.h"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //include external file with declarations and definitions&lt;BR /&gt;&lt;BR /&gt;/*define led's*/&lt;BR /&gt;#define LED1 PTED_PTED2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port E 2 (LED1)&lt;BR /&gt;#define LED2 PTED_PTED3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port E 3 (LED2)&lt;BR /&gt;#define LED3 PTFD_PTFD0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port F 0 (LED3)&lt;BR /&gt;#define LED4 PTFD_PTFD1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port F 1 (LED4)&lt;BR /&gt;#define BUZ1 PTFD_PTFD4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port F 4 (BUZZER)&lt;BR /&gt;&lt;BR /&gt;/*define switches*/&lt;BR /&gt;#define BTH10 PTGD_PTGD0&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 0 (Hour 10s Button)&lt;BR /&gt;#define BTH1&amp;nbsp; PTGD_PTGD1&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 1 (Hour 1s Button)&lt;BR /&gt;#define BTM10 PTGD_PTGD2&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 2 (Minute 10s Button)&lt;BR /&gt;#define BTM1&amp;nbsp; PTGD_PTGD3&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 3 (Minute 1s Button)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;int i=0,H10=1,H1=1,M10=0,M1=6,S10=0,S1=0;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;//*** Timer Interrupt ISR - 100ms&lt;BR /&gt;interrupt 15 void intTPM1OVF(){&lt;BR /&gt;&amp;nbsp; byte count=10; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; count--;&lt;BR /&gt;&amp;nbsp; if(!count){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if count is 0 then 1 second passed&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count=10;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; S1++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(S1&amp;gt;9){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S10++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S1=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(S10&amp;gt;5){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M1++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S10=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(M1&amp;gt;9){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M10++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M1=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(M10&amp;gt;5){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H1++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M10=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(H10&amp;gt;2){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H10=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; TPM1SC_TOF = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset timer overflow flag&lt;BR /&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;/******************************MAIN********************************/&lt;BR /&gt;void main(void) {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; //*** Configure Multi-purpose Clock Generator (MCG) for 24MHz bus frequency&lt;BR /&gt;&amp;nbsp; //Switching from FEI Mode to PEE Mode&lt;BR /&gt;&amp;nbsp; //FEI --&amp;gt; FBE&lt;BR /&gt;&amp;nbsp; MCGC2 = 0x36;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; while(!MCGSC_OSCINIT);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until crystal has been initialized, OSCINIT = 1&lt;BR /&gt;&amp;nbsp; DisableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //disable interrupts so no extra steps occur in 1.5MHz range&lt;BR /&gt;&amp;nbsp; MCGC1 = 0x98;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //CLKS=10 (Ext. ref); RDIV=011 (12MHz/8=1.5MHz)&lt;BR /&gt;&amp;nbsp; while(MCGSC_IREFST == 1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until IREFST = 0; Ext. reference is source&lt;BR /&gt;&amp;nbsp; while(MCGSC_CLKST != 0b10);&amp;nbsp;&amp;nbsp; //loop until external ref. clock is selected to feed MCGOUT&lt;BR /&gt;&amp;nbsp; //FBE --&amp;gt; BLPE&lt;BR /&gt;&amp;nbsp; MCGC2 = 0x3E;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LP = 1; BLPE MODE ON&lt;BR /&gt;&amp;nbsp; EnableInterrupts;&lt;BR /&gt;&amp;nbsp; MCGC3 = 0x48;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //1.5MHz*32=48MHz; PLL is selected (prepared for PBE)&lt;BR /&gt;&amp;nbsp; while(!MCGSC_PLLST);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until current source for PLLS clock is PLL; PLLST=1&lt;BR /&gt;&amp;nbsp; //BLPE --&amp;gt; PBE&lt;BR /&gt;&amp;nbsp; MCGC2 = 0x36;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LP = 0; BLPE MODE OFF, PBE MODE ENTERED&lt;BR /&gt;&amp;nbsp; while(!MCGSC_LOCK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until PLL acquired lock; LOCK=1&lt;BR /&gt;&amp;nbsp; //PBE --&amp;gt; PEE&lt;BR /&gt;&amp;nbsp; MCGC1 = 0x18;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //CLKS = 00; output of PLL or FLL is selected&lt;BR /&gt;&amp;nbsp; while(MCGSC_CLKST != 0b11);&amp;nbsp;&amp;nbsp; //loop until PLL output is selected to feed MCGOUT &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //EnableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable interrupts&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Initialize Inputs&lt;BR /&gt;&amp;nbsp; PTGDD = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize Port G as Input (Data Direction Register)&lt;BR /&gt;&amp;nbsp; PTGPE = 0x0F;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //pullups on (PTG0..3)&lt;BR /&gt;&amp;nbsp; //Initialize Outputs &amp;nbsp;&lt;BR /&gt;&amp;nbsp; PTEDD = 0x0C;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize Port E bits 2 and 3 as Outputs&lt;BR /&gt;&amp;nbsp; PTFDD = 0x13;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize Port F bits 0, 1, and 4 as Outputs&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; //*** Initialize TIMER module (TPM1)&lt;BR /&gt;&amp;nbsp; //Since MCG is in PEE mode, MCGFFCLK=1.5MHz, fixed sys clock=750kHz (1.5MHz/2)&lt;BR /&gt;&amp;nbsp; TPM1MOD = 0x493D;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //modulo value (terminal count): 18,749&lt;BR /&gt;&amp;nbsp; TPM1SC = 0x52;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //fixed sys clk (750kHz), prescaler 4 (TPM1 CLK=187.5kHz)&lt;BR /&gt;&amp;nbsp; TPM1SC_TOF = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //timer has not overflowed&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; //*** FOREVER LOOP&lt;BR /&gt;&amp;nbsp; for(;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif"&gt;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/A&gt;&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __RESET_WATCHDOG();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //feeds the dog&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED1 = BTH10;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED2 = BTH1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED3 = BTM10;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED4 = BTM1;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;} /* please make sure that you never leave main */&lt;BR /&gt;&lt;BR /&gt;/**************************END*MAIN********************************/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 15 May 2010 03:59:33 GMT</pubDate>
    <dc:creator>Coderunner</dc:creator>
    <dc:date>2010-05-15T03:59:33Z</dc:date>
    <item>
      <title>Interrupts stopped workin</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200348#M16352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Maybe someone here can help me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was writing software and everything was working, untill at one point all my interrupts quit working.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was using full PE emulator to check my timer count minutes hours etc. But now it will never hit the ISR???&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*****************************************************************************&lt;BR /&gt;&amp;nbsp;MC9S08JM60&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Program Function:&lt;BR /&gt;&lt;BR /&gt;*****************************************************************************/&lt;BR /&gt;#include &amp;lt;hidef.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for EnableInterrupts macro&lt;BR /&gt;#include &amp;lt;MC9S08JM60.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //include peripheral declarations&lt;BR /&gt;#include "LEDDEF.h"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //include external file with declarations and definitions&lt;BR /&gt;&lt;BR /&gt;/*define led's*/&lt;BR /&gt;#define LED1 PTED_PTED2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port E 2 (LED1)&lt;BR /&gt;#define LED2 PTED_PTED3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port E 3 (LED2)&lt;BR /&gt;#define LED3 PTFD_PTFD0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port F 0 (LED3)&lt;BR /&gt;#define LED4 PTFD_PTFD1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port F 1 (LED4)&lt;BR /&gt;#define BUZ1 PTFD_PTFD4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port F 4 (BUZZER)&lt;BR /&gt;&lt;BR /&gt;/*define switches*/&lt;BR /&gt;#define BTH10 PTGD_PTGD0&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 0 (Hour 10s Button)&lt;BR /&gt;#define BTH1&amp;nbsp; PTGD_PTGD1&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 1 (Hour 1s Button)&lt;BR /&gt;#define BTM10 PTGD_PTGD2&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 2 (Minute 10s Button)&lt;BR /&gt;#define BTM1&amp;nbsp; PTGD_PTGD3&amp;nbsp;&amp;nbsp;&amp;nbsp; //Port G 3 (Minute 1s Button)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;int i=0,H10=1,H1=1,M10=0,M1=6,S10=0,S1=0;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;//*** Timer Interrupt ISR - 100ms&lt;BR /&gt;interrupt 15 void intTPM1OVF(){&lt;BR /&gt;&amp;nbsp; byte count=10; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; count--;&lt;BR /&gt;&amp;nbsp; if(!count){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if count is 0 then 1 second passed&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count=10;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; S1++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(S1&amp;gt;9){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S10++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S1=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(S10&amp;gt;5){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M1++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S10=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(M1&amp;gt;9){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M10++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M1=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(M10&amp;gt;5){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H1++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M10=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(H10&amp;gt;2){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H10=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; TPM1SC_TOF = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset timer overflow flag&lt;BR /&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;/******************************MAIN********************************/&lt;BR /&gt;void main(void) {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; //*** Configure Multi-purpose Clock Generator (MCG) for 24MHz bus frequency&lt;BR /&gt;&amp;nbsp; //Switching from FEI Mode to PEE Mode&lt;BR /&gt;&amp;nbsp; //FEI --&amp;gt; FBE&lt;BR /&gt;&amp;nbsp; MCGC2 = 0x36;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; while(!MCGSC_OSCINIT);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until crystal has been initialized, OSCINIT = 1&lt;BR /&gt;&amp;nbsp; DisableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //disable interrupts so no extra steps occur in 1.5MHz range&lt;BR /&gt;&amp;nbsp; MCGC1 = 0x98;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //CLKS=10 (Ext. ref); RDIV=011 (12MHz/8=1.5MHz)&lt;BR /&gt;&amp;nbsp; while(MCGSC_IREFST == 1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until IREFST = 0; Ext. reference is source&lt;BR /&gt;&amp;nbsp; while(MCGSC_CLKST != 0b10);&amp;nbsp;&amp;nbsp; //loop until external ref. clock is selected to feed MCGOUT&lt;BR /&gt;&amp;nbsp; //FBE --&amp;gt; BLPE&lt;BR /&gt;&amp;nbsp; MCGC2 = 0x3E;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LP = 1; BLPE MODE ON&lt;BR /&gt;&amp;nbsp; EnableInterrupts;&lt;BR /&gt;&amp;nbsp; MCGC3 = 0x48;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //1.5MHz*32=48MHz; PLL is selected (prepared for PBE)&lt;BR /&gt;&amp;nbsp; while(!MCGSC_PLLST);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until current source for PLLS clock is PLL; PLLST=1&lt;BR /&gt;&amp;nbsp; //BLPE --&amp;gt; PBE&lt;BR /&gt;&amp;nbsp; MCGC2 = 0x36;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LP = 0; BLPE MODE OFF, PBE MODE ENTERED&lt;BR /&gt;&amp;nbsp; while(!MCGSC_LOCK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop until PLL acquired lock; LOCK=1&lt;BR /&gt;&amp;nbsp; //PBE --&amp;gt; PEE&lt;BR /&gt;&amp;nbsp; MCGC1 = 0x18;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //CLKS = 00; output of PLL or FLL is selected&lt;BR /&gt;&amp;nbsp; while(MCGSC_CLKST != 0b11);&amp;nbsp;&amp;nbsp; //loop until PLL output is selected to feed MCGOUT &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //EnableInterrupts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable interrupts&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; //Initialize Inputs&lt;BR /&gt;&amp;nbsp; PTGDD = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize Port G as Input (Data Direction Register)&lt;BR /&gt;&amp;nbsp; PTGPE = 0x0F;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //pullups on (PTG0..3)&lt;BR /&gt;&amp;nbsp; //Initialize Outputs &amp;nbsp;&lt;BR /&gt;&amp;nbsp; PTEDD = 0x0C;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize Port E bits 2 and 3 as Outputs&lt;BR /&gt;&amp;nbsp; PTFDD = 0x13;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initialize Port F bits 0, 1, and 4 as Outputs&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; //*** Initialize TIMER module (TPM1)&lt;BR /&gt;&amp;nbsp; //Since MCG is in PEE mode, MCGFFCLK=1.5MHz, fixed sys clock=750kHz (1.5MHz/2)&lt;BR /&gt;&amp;nbsp; TPM1MOD = 0x493D;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //modulo value (terminal count): 18,749&lt;BR /&gt;&amp;nbsp; TPM1SC = 0x52;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //fixed sys clk (750kHz), prescaler 4 (TPM1 CLK=187.5kHz)&lt;BR /&gt;&amp;nbsp; TPM1SC_TOF = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //timer has not overflowed&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; //*** FOREVER LOOP&lt;BR /&gt;&amp;nbsp; for(;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif"&gt;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/A&gt;&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __RESET_WATCHDOG();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //feeds the dog&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED1 = BTH10;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED2 = BTH1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED3 = BTM10;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED4 = BTM1;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;} /* please make sure that you never leave main */&lt;BR /&gt;&lt;BR /&gt;/**************************END*MAIN********************************/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 May 2010 03:59:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200348#M16352</guid>
      <dc:creator>Coderunner</dc:creator>
      <dc:date>2010-05-15T03:59:33Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts stopped working</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200349#M16353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you sure the issue are the interrupts?&lt;/P&gt;&lt;P&gt;The count variable is a local, therefore it will always be 9 when it reaches the if. Therefore the time digit variables are not incremented even if the interrupts happen.&lt;/P&gt;&lt;P&gt;Also I would make your digits a unsigned char, and as they are written from the interrupt handler also volatile.&lt;/P&gt;&lt;P&gt;Using a single variable for seconds (instead of one per second digit) would also simplify it, right now the H10 digit for example is not incremented.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;interrupt 15 void intTPM1OVF(){
  byte count=10; 
  count--;
  if(!count){ // count is 9 here...
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 May 2010 11:54:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200349#M16353</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2010-05-15T11:54:32Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts stopped workin</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200350#M16354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your ISR code seems to be based on a code snippet that I suggested in another post, with the exception that the count variable should be static, rather than local.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;static byte count = 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Such a&amp;nbsp;variable will only be visible from within the ISR function, but will retain the current value between calls to the function.&amp;nbsp; Also it will not be re-initialised for each call.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mac&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 May 2010 14:20:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200350#M16354</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2010-05-15T14:20:44Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts stopped working</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200351#M16355</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think it's interrupts because, you know how you can follow the code execution in PE Emulator? Well when it WAS working it would jump to the timer ISR, now it always statys in the FOREVER LOOP at the bottom of the MAIN. By the way it is not frozen since the button assignments to the LEDS that are inside teh FOREVER LOOP do work. ???&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 May 2010 20:08:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200351#M16355</guid>
      <dc:creator>Coderunner</dc:creator>
      <dc:date>2010-05-17T20:08:58Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts stopped working</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200352#M16356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK I found what is causing my problem but not sure I fully understand why.&lt;/P&gt;&lt;P&gt;When I declare "byte count=100;" withing an ISR I get no updating of variables* in emulator (which seemed like interrupts were not being handled)&lt;/P&gt;&lt;P&gt;When I move that declaration out side of ISR, then it works.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;*I have variables: MIN, HRS, SEC and count. And when I run the emulator I can see those values change (time count).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 May 2010 01:54:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200352#M16356</guid>
      <dc:creator>Coderunner</dc:creator>
      <dc:date>2010-05-18T01:54:10Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts stopped working</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200353#M16357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think that you need to read a good basic text on C programming to understand the difference between global, static and local variables.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mac&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 May 2010 09:00:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200353#M16357</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2010-05-18T09:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: Interrupts stopped working</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200354#M16358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yeh, I'm realy new to C. I mean I've used it here and there but this is the first time when I'm starting to really use it. Thanks for everyone's help though.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 May 2010 20:26:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Interrupts-stopped-workin/m-p/200354#M16358</guid>
      <dc:creator>Coderunner</dc:creator>
      <dc:date>2010-05-18T20:26:56Z</dc:date>
    </item>
  </channel>
</rss>

