<?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>ColdFire/68K Microcontrollers and ProcessorsのトピックRe: MCF5223X: TCP/IP stack: AN3470SW Enable interrupts from switches (/IRQ1, /IRQ4, /IRQ7)</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-TCP-IP-stack-AN3470SW-Enable-interrupts-from-switches/m-p/143340#M2687</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Hi Martin&lt;BR /&gt;&lt;BR /&gt;I know that it is not related to AN3470SW but here is the method for configuring these interrupts in the uTasker project (interested people can get full details at the link below) - it can set up any IRQ1..IRQ15 (note that not all are available on the&amp;nbsp; smaller chips)&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;    INTERRUPT_SETUP interrupt_setup;                                     // interrupt configuration parameters    interrupt_setup.int_type     = PORT_INTERRUPT;                       // identifier when configuring    interrupt_setup.int_handler  = test_irq_1;                           // handling function    interrupt_setup.int_priority = (INTERRUPT_LEVEL_2);                  // low priority    interrupt_setup.int_port_bit = 1;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_BOTH_EDGES;                     // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_3);                  // low priority    interrupt_setup.int_handler  = test_irq_4;                           // handling function    interrupt_setup.int_port_bit = 4;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_RISING_EDGE;                    // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_3);                  // low priority    interrupt_setup.int_handler  = test_irq_5;                           // handling function    interrupt_setup.int_port_bit = 5;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_RISING_EDGE;                    // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_4);                  // low priority (test not available on 80 pin devices)    interrupt_setup.int_handler  = test_irq_7;                           // handling function    interrupt_setup.int_port_bit = 7;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_FALLING_EDGE;                   // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_6);                  // low priority    interrupt_setup.int_handler  = test_irq_11;                          // handling function    interrupt_setup.int_port_bit = 11;                                   // The IRQ input connected (on all devices)    interrupt_setup.int_port_sense = IRQ_RISING_EDGE;                    // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;Here 5 are configured - each can be assigned a priority, rising, falling, toggle or edge sensitive plus an interrupt handler - eg.&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;static void test_irq_7(void){    fnInterruptMessage(OWN_TASK, IRQ7_EVENT);}&lt;/PRE&gt;&lt;/DIV&gt;which causes a task to be woken which writes a message to a UART (not visible here) to inform that IRQ7 was detected.&lt;BR /&gt;&lt;BR /&gt;The uTasker simulator allows the user to see the function set to the port bits and to click on them to toggle their input state. If the pin state change matches the set up the simulator also executes the interrupt code so that all can be verified / tested before moving to hardware.&lt;BR /&gt;&lt;BR /&gt;Below is a screen shot of the simulator in action, where the 5 IRQ pins are visible. The cursor was positioned over IRQ1 pin where its function is being displayed.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV align="center"&gt;&lt;IMG src="http://www.utasker.com/Demos/Freescale/m5223x1.JPG" /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;The project is open source and completely free for non-commercial (hobby, educational, etc.) use.&lt;BR /&gt;The uTasker has its own support forum at &lt;A href="http://www.uTasker.com/forum/" rel="nofollow noopener noreferrer noopener noreferrer" target="_blank"&gt;http://www.uTasker.com/forum/&lt;/A&gt;&lt;BR /&gt;Every one is welcome to check it out!&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://www.uTasker.com" rel="nofollow noopener noreferrer noopener noreferrer" target="_blank"&gt;www.uTasker.com&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Oct 2020 08:43:51 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2020-10-29T08:43:51Z</dc:date>
    <item>
      <title>MCF5223X: TCP/IP stack: AN3470SW Enable interrupts from switches (/IRQ1, /IRQ4, /IRQ7)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-TCP-IP-stack-AN3470SW-Enable-interrupts-from-switches/m-p/143339#M2686</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Hi all,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;If someone would like to use external interrupts from switches in AN3470SW, here is the proposal:&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;The switch&amp;nbsp;interrupts are disabled by default, the project&amp;nbsp;just polls them.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;To enable interrupts for them,&amp;nbsp;we could enable already pre-prepared code inside mcf5223_gpio_init function:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;#if 1&amp;nbsp; // EMG - Need to poll Switch state from web server&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable IRQ signals on the port */&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_GPIO_PNQPAR = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_GPIO_PNQPAR_IRQ1_IRQ1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_GPIO_PNQPAR_IRQ4_IRQ4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_GPIO_PNQPAR_IRQ7_IRQ7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_GPIO_PGPPAR = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_GPIO_PGPPAR_IRQ11_IRQ11;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set EPORT to look for rising edges */&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_EPORT_EPPAR0 = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPPAR_EPPA1_RISING&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPPAR_EPPA4_RISING&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPPAR_EPPA7_RISING;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_EPORT_EPPAR1 = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPPAR_EPPA11_RISING;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear any currently triggered events on the EPORT&amp;nbsp; */&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_EPORT_EPIER0 = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPIER_EPIE1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPIER_EPIE4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPIER_EPIE7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_EPORT_EPIER1 = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | MCF_EPORT_EPIER_EPIE11;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable interrupts in the interrupt controller */ MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK1); //&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK4); //&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK7); //&amp;nbsp; MCF_INTC1_ICR35 = MCF_INTC_ICR_IL(4);&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC1_IMRH &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRH_MASK35); #else&lt;/PRE&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 2;"&gt;If we look at the code we will see the interrupts&lt;/SPAN&gt; &lt;SPAN style="font-size: 2;"&gt;are being unmasked in the MCF_INTC0_IMRL interrupt mask register in this order:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;mcf5223_gpio_init() {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable interrupts in the interrupt controller */&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK1); //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK4); //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK7); //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;= ~(MCF_INTC_IMRL_MASKALL);&amp;nbsp;&amp;nbsp;&amp;nbsp; ...}&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;However, the transition of the MCF_INTC0_IMRL[MASKALL] bit from 1 to 0 will set all the remaining 63bits to 1, therefore masking all interrupt sources.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;If we modify the unmasking to the following order:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;//maskall first&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;= ~(MCF_INTC_IMRL_MASKALL);&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK1); //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK4); //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;=&amp;nbsp; ~(MCF_INTC_IMRL_MASK7); //&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;the interrupts from switches work then.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Additionally, if we slightly modified and moved the mcf5223_powerup_config() function call before mcf5223_gpio_init() function call, the poll_switches() function would detect SW1 and SW2 power up states correctly:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;void mcf5223_powerup_config( void ){ //these two registers will be overwritten later in the mcf5223_gpio_init() if required MCF_GPIO_PNQPAR = 0; MCF_GPIO_PGPPAR = 0; powerup_config_flags = poll_switches() | 0x80;// powerup_config_flags = 0x01;&amp;nbsp;&amp;nbsp; // DHCP enabled&amp;nbsp; }&lt;/PRE&gt;&lt;/DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;mcf5223_gpio_init(){&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&amp;nbsp;&amp;nbsp;&amp;nbsp; mcf5223_powerup_config();&amp;nbsp;&amp;nbsp;&amp;nbsp; mcf5223_gpio_init();&amp;nbsp;&amp;nbsp;&amp;nbsp; ...}&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by macl on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2007-08-20&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;03:42 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:43:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-TCP-IP-stack-AN3470SW-Enable-interrupts-from-switches/m-p/143339#M2686</guid>
      <dc:creator>Martin_</dc:creator>
      <dc:date>2020-10-29T08:43:50Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5223X: TCP/IP stack: AN3470SW Enable interrupts from switches (/IRQ1, /IRQ4, /IRQ7)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-TCP-IP-stack-AN3470SW-Enable-interrupts-from-switches/m-p/143340#M2687</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Hi Martin&lt;BR /&gt;&lt;BR /&gt;I know that it is not related to AN3470SW but here is the method for configuring these interrupts in the uTasker project (interested people can get full details at the link below) - it can set up any IRQ1..IRQ15 (note that not all are available on the&amp;nbsp; smaller chips)&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;    INTERRUPT_SETUP interrupt_setup;                                     // interrupt configuration parameters    interrupt_setup.int_type     = PORT_INTERRUPT;                       // identifier when configuring    interrupt_setup.int_handler  = test_irq_1;                           // handling function    interrupt_setup.int_priority = (INTERRUPT_LEVEL_2);                  // low priority    interrupt_setup.int_port_bit = 1;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_BOTH_EDGES;                     // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_3);                  // low priority    interrupt_setup.int_handler  = test_irq_4;                           // handling function    interrupt_setup.int_port_bit = 4;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_RISING_EDGE;                    // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_3);                  // low priority    interrupt_setup.int_handler  = test_irq_5;                           // handling function    interrupt_setup.int_port_bit = 5;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_RISING_EDGE;                    // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_4);                  // low priority (test not available on 80 pin devices)    interrupt_setup.int_handler  = test_irq_7;                           // handling function    interrupt_setup.int_port_bit = 7;                                    // The IRQ input connected    interrupt_setup.int_port_sense = IRQ_FALLING_EDGE;                   // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt    interrupt_setup.int_priority = (INTERRUPT_LEVEL_6);                  // low priority    interrupt_setup.int_handler  = test_irq_11;                          // handling function    interrupt_setup.int_port_bit = 11;                                   // The IRQ input connected (on all devices)    interrupt_setup.int_port_sense = IRQ_RISING_EDGE;                    // Interrupt on this edge    fnConfigureInterrupt((void *)&amp;amp;interrupt_setup);                      // configure test interrupt&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;Here 5 are configured - each can be assigned a priority, rising, falling, toggle or edge sensitive plus an interrupt handler - eg.&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;PRE&gt;static void test_irq_7(void){    fnInterruptMessage(OWN_TASK, IRQ7_EVENT);}&lt;/PRE&gt;&lt;/DIV&gt;which causes a task to be woken which writes a message to a UART (not visible here) to inform that IRQ7 was detected.&lt;BR /&gt;&lt;BR /&gt;The uTasker simulator allows the user to see the function set to the port bits and to click on them to toggle their input state. If the pin state change matches the set up the simulator also executes the interrupt code so that all can be verified / tested before moving to hardware.&lt;BR /&gt;&lt;BR /&gt;Below is a screen shot of the simulator in action, where the 5 IRQ pins are visible. The cursor was positioned over IRQ1 pin where its function is being displayed.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV align="center"&gt;&lt;IMG src="http://www.utasker.com/Demos/Freescale/m5223x1.JPG" /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;The project is open source and completely free for non-commercial (hobby, educational, etc.) use.&lt;BR /&gt;The uTasker has its own support forum at &lt;A href="http://www.uTasker.com/forum/" rel="nofollow noopener noreferrer noopener noreferrer" target="_blank"&gt;http://www.uTasker.com/forum/&lt;/A&gt;&lt;BR /&gt;Every one is welcome to check it out!&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://www.uTasker.com" rel="nofollow noopener noreferrer noopener noreferrer" target="_blank"&gt;www.uTasker.com&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:43:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5223X-TCP-IP-stack-AN3470SW-Enable-interrupts-from-switches/m-p/143340#M2687</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2020-10-29T08:43:51Z</dc:date>
    </item>
  </channel>
</rss>

