<?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のトピックhelp about MCF52259 DEMO</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153506#M4192</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone, I'm an Italian student and I'm working on a MCF52259 demo. I'm trying to control a LED with the MCF52259 and I've written this code following an old work by a student, but the&amp;nbsp; doesn't work at the right frequency, even if I set it manually...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you see any error in my code? I can't figure out what's wrong about it. Thank you very much for your aid!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/*** ### MCF52259CAG80 "Cpu" init code ... ***/&lt;BR /&gt;&amp;nbsp; /*** PE initialization code after reset ***/&lt;BR /&gt;&amp;nbsp; /* System clock initialization */&lt;BR /&gt;&amp;nbsp; /* CCHR: ??=0,??=0,??=0,??=0,??=0,CCHR=5 */&lt;BR /&gt;&amp;nbsp; setReg8(CCHR, 0x05);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the predivider */&lt;BR /&gt;&amp;nbsp; /* SYNCR: LOLRE=0,MFD=3,LOCRE=0,RFD=0,LOCEN=0,DISCLK=0,FWKUP=0,??=0,??=0,CLKsrc=1,PLLMODE=1,PLLEN=1 */&lt;BR /&gt;&amp;nbsp; setReg16(SYNCR, 0x3007);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the SYNCR register */&lt;BR /&gt;&amp;nbsp; while (!(SYNSR &amp;amp; SYNSR_LOCK_BITMASK)){} /* Wait until the PLL is locked. */&lt;BR /&gt;&amp;nbsp; /* LPDR: ??=0,??=0,??=0,??=0,LPD=0 */&lt;BR /&gt;&amp;nbsp; setReg8(LPDR, 0x00);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the low power divider */&lt;BR /&gt;&amp;nbsp; /* RTCCR: ??=0,EXTALEN=0,??=0,OSCEN=0,KHZEN=0,REFS=0,LPEN=0,RTCSEL=1 */&lt;BR /&gt;&amp;nbsp; setReg8(RTCCR, 0x01);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the RTC oscillator and RTC clock select */&lt;BR /&gt;&amp;nbsp; /* BWCR: ??=0,??=0,??=0,??=0,??=0,??=0,BWDSTOP=0,BWDSEL=1 */&lt;BR /&gt;&amp;nbsp; setReg32(BWCR, 0x01);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the BWCR register */&lt;BR /&gt;&amp;nbsp; /*** End of PE initialization code after reset ***/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;my code..&lt;/P&gt;&lt;P&gt;&amp;nbsp;double Out_sigma2=0;&lt;BR /&gt;double Out_sigma2_old=0;&lt;BR /&gt;double Vout=0;&lt;BR /&gt;double Vin=0;&lt;BR /&gt;double PidEnable=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/* Blocco sigma delta del dimming */&lt;BR /&gt;&amp;nbsp; Vin=0.5; // valore fisso per prova&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;//&amp;nbsp; random2 = rand() ;&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; random2=random2/65536;&lt;BR /&gt;&amp;nbsp;Out_sigma2=Vin-Vout+Out_sigma2_old;//+random2;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Out_sigma2&amp;lt;0.5)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vout=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit1_PutVal(FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PidEnable=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vout=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit1_PutVal(TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PidEnable=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Out_sigma2_old=Out_sigma2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I set the micro so that it should work at 80 MHz, but the output switches at 100kHz!!!!!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On the contrary, if I execute this code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bit1_PutVal(TRUE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit1_PutVal(FALSE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the exit switches at 3MHz !!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Help me please!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 11 Nov 2009 05:36:15 GMT</pubDate>
    <dc:creator>Spaccoman</dc:creator>
    <dc:date>2009-11-11T05:36:15Z</dc:date>
    <item>
      <title>help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153506#M4192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone, I'm an Italian student and I'm working on a MCF52259 demo. I'm trying to control a LED with the MCF52259 and I've written this code following an old work by a student, but the&amp;nbsp; doesn't work at the right frequency, even if I set it manually...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you see any error in my code? I can't figure out what's wrong about it. Thank you very much for your aid!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/*** ### MCF52259CAG80 "Cpu" init code ... ***/&lt;BR /&gt;&amp;nbsp; /*** PE initialization code after reset ***/&lt;BR /&gt;&amp;nbsp; /* System clock initialization */&lt;BR /&gt;&amp;nbsp; /* CCHR: ??=0,??=0,??=0,??=0,??=0,CCHR=5 */&lt;BR /&gt;&amp;nbsp; setReg8(CCHR, 0x05);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the predivider */&lt;BR /&gt;&amp;nbsp; /* SYNCR: LOLRE=0,MFD=3,LOCRE=0,RFD=0,LOCEN=0,DISCLK=0,FWKUP=0,??=0,??=0,CLKsrc=1,PLLMODE=1,PLLEN=1 */&lt;BR /&gt;&amp;nbsp; setReg16(SYNCR, 0x3007);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the SYNCR register */&lt;BR /&gt;&amp;nbsp; while (!(SYNSR &amp;amp; SYNSR_LOCK_BITMASK)){} /* Wait until the PLL is locked. */&lt;BR /&gt;&amp;nbsp; /* LPDR: ??=0,??=0,??=0,??=0,LPD=0 */&lt;BR /&gt;&amp;nbsp; setReg8(LPDR, 0x00);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the low power divider */&lt;BR /&gt;&amp;nbsp; /* RTCCR: ??=0,EXTALEN=0,??=0,OSCEN=0,KHZEN=0,REFS=0,LPEN=0,RTCSEL=1 */&lt;BR /&gt;&amp;nbsp; setReg8(RTCCR, 0x01);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the RTC oscillator and RTC clock select */&lt;BR /&gt;&amp;nbsp; /* BWCR: ??=0,??=0,??=0,??=0,??=0,??=0,BWDSTOP=0,BWDSEL=1 */&lt;BR /&gt;&amp;nbsp; setReg32(BWCR, 0x01);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the BWCR register */&lt;BR /&gt;&amp;nbsp; /*** End of PE initialization code after reset ***/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;my code..&lt;/P&gt;&lt;P&gt;&amp;nbsp;double Out_sigma2=0;&lt;BR /&gt;double Out_sigma2_old=0;&lt;BR /&gt;double Vout=0;&lt;BR /&gt;double Vin=0;&lt;BR /&gt;double PidEnable=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;/* Blocco sigma delta del dimming */&lt;BR /&gt;&amp;nbsp; Vin=0.5; // valore fisso per prova&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;//&amp;nbsp; random2 = rand() ;&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; random2=random2/65536;&lt;BR /&gt;&amp;nbsp;Out_sigma2=Vin-Vout+Out_sigma2_old;//+random2;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Out_sigma2&amp;lt;0.5)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vout=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit1_PutVal(FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PidEnable=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vout=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit1_PutVal(TRUE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PidEnable=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Out_sigma2_old=Out_sigma2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I set the micro so that it should work at 80 MHz, but the output switches at 100kHz!!!!!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On the contrary, if I execute this code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bit1_PutVal(TRUE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit1_PutVal(FALSE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the exit switches at 3MHz !!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Help me please!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Nov 2009 05:36:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153506#M4192</guid>
      <dc:creator>Spaccoman</dc:creator>
      <dc:date>2009-11-11T05:36:15Z</dc:date>
    </item>
    <item>
      <title>Re: help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153507#M4193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please step through your code in the debugger in "assembler view" and count the instructions between the instructions where the outputs are set to '1' and '0'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Assuming that each instruction takes two clocks (25ns, which is not true since they vary from 1 to 4 in most cases but sometime a lot more), plus execution from FLASH will be a little slower, see whether you can see whether the speed of the outputs is as expected or not.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Nov 2009 05:52:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153507#M4193</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2009-11-11T05:52:37Z</dc:date>
    </item>
    <item>
      <title>Re: help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153508#M4194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp; Bit1_PutVal(FALSE); // Setto l'uscita AN5 a o Volt&lt;BR /&gt;;&lt;BR /&gt;0x0000000C&amp;nbsp; 0x4217&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clr.b&amp;nbsp;&amp;nbsp;&amp;nbsp; (a7)&lt;BR /&gt;0x0000000E&amp;nbsp; 0x4EB900000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _Bit1_PutVal&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;void Bit1_PutVal(bool Val)&lt;BR /&gt;;&amp;nbsp;&amp;nbsp; 76: {&lt;BR /&gt;;&lt;BR /&gt;0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _Bit1_PutVal:&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; Bit1_PutVal:&lt;BR /&gt;0x00000000&amp;nbsp; 0x4E560000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; link&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a6,#0&lt;BR /&gt;0x00000004&amp;nbsp; 0x102E0008&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.b&amp;nbsp;&amp;nbsp; 8(a6),d0&lt;BR /&gt;;&lt;BR /&gt;;&amp;nbsp;&amp;nbsp; 77:&amp;nbsp;&amp;nbsp; if (Val) {&lt;BR /&gt;;&lt;BR /&gt;0x00000008&amp;nbsp; 0x4A00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tst.b&amp;nbsp;&amp;nbsp;&amp;nbsp; d0&lt;BR /&gt;0x0000000A&amp;nbsp; 0x670A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; beq.s&amp;nbsp;&amp;nbsp;&amp;nbsp; *+12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x00000016&lt;BR /&gt;;&lt;BR /&gt;;&amp;nbsp;&amp;nbsp; 78:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setReg8(SETAN, 0x20);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SETAN5=0x01 */&lt;BR /&gt;;&lt;BR /&gt;0x0000000C&amp;nbsp; 0x7020&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; moveq&amp;nbsp;&amp;nbsp;&amp;nbsp; #32,d0&lt;BR /&gt;0x0000000E&amp;nbsp; 0x13C000000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.b&amp;nbsp;&amp;nbsp; d0,___IPSBAR+1048634&lt;BR /&gt;;&lt;BR /&gt;;&amp;nbsp;&amp;nbsp; 79:&amp;nbsp;&amp;nbsp; } else { /* !Val */&lt;BR /&gt;;&lt;BR /&gt;0x00000014&amp;nbsp; 0x600A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bra.s&amp;nbsp;&amp;nbsp;&amp;nbsp; *+12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x00000020&lt;BR /&gt;;&lt;BR /&gt;;&amp;nbsp;&amp;nbsp; 80:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setReg8(CLRAN, 0xDF);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CLRAN5=0x00 */&lt;BR /&gt;;&amp;nbsp;&amp;nbsp; 81:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } /* !Val */&lt;BR /&gt;;&lt;BR /&gt;0x00000016&amp;nbsp; 0x103C00DF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.b&amp;nbsp;&amp;nbsp; #-33,d0&amp;nbsp;&amp;nbsp;&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;0x0000001A&amp;nbsp; 0x13C000000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.b&amp;nbsp;&amp;nbsp; d0,___IPSBAR+1048658&lt;BR /&gt;;&lt;BR /&gt;;&amp;nbsp;&amp;nbsp; 82: }&lt;BR /&gt;;&lt;BR /&gt;0x00000020&amp;nbsp; 0x4E5E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unlk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a6&lt;BR /&gt;0x00000022&amp;nbsp; 0x4E75&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I unassembled the code and counted the instructions, they are 8 for "1" output.&lt;BR /&gt;I wonder, I need a Dimming part working at 100kHz, a Sigma-Delta working at 800 KHz and an ADC part working at 100kHz with 3 interrupts... should I use a faster micro?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Nov 2009 06:42:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153508#M4194</guid>
      <dc:creator>Spaccoman</dc:creator>
      <dc:date>2009-11-11T06:42:10Z</dc:date>
    </item>
    <item>
      <title>Re: help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153509#M4195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try the following code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;setReg8(SETAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(CLEARAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(SETAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(CLEARAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(SETAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(CLEARAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(SETAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(CLEARAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(SETAN, 0x20);&lt;/P&gt;&lt;P&gt;setReg8(CLEARAN, 0x20);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and see what speed the output changes at.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note that often port toggling is not as fast as the instruction speed since port accesses can often not be performed at full speed. A speed of 12MHz is considered as good from a processor of this class. The speed achieved is also dependent on SW - the code you are presently testing is not written to optimise speed&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The M52259 is a powerful processor and can be used in applications doing a great deal of fast functionaility, but it needs to be used correctly. Some of the functions that you mention are not necessarily suited to being implemented in pure SW - the chip has great peripherals such as DMA timers etc. which will probably allow you to do much of what you want to do without the CPU making any effort of its own.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The trick is in utilising the dormant capabilities of the device in an efficient and intelligent manner. By keeping SW intervention to a minimum and applying HW resources to a maximum you will achieve the best performance for the minimum CPU power overhead. It is always possible to chose a faster (more expensive) processor (or DSP if this is more suited) but to do this due to poor design and not real needs will also result in a poor solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Nov 2009 09:11:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153509#M4195</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2009-11-11T09:11:53Z</dc:date>
    </item>
    <item>
      <title>Re: help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153510#M4196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I am attaching the entire code of the micro ..&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;A href="http://halogear.it/meeting/prova.rar" rel="nofollow" target="_blank"&gt;codice&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;if I run only this&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;setReg8(MCF_GPIO_SETAN, 0x20);&lt;BR /&gt;&lt;BR /&gt;setReg8(MCF_GPIO_CLRAN, 0xDF);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;output goes to 3 MHz&lt;BR /&gt;&lt;BR /&gt;if I add the sigma delta output is only 100 kHz!&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Nov 2009 19:06:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153510#M4196</guid>
      <dc:creator>Spaccoman</dc:creator>
      <dc:date>2009-11-11T19:06:37Z</dc:date>
    </item>
    <item>
      <title>Re: help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153511#M4197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If 3MHz is fastest speed that you achieve using straight-line instructions it means that you are hitting the limits imposed by the port writes and not the CPU. I have never tried this on the M52259 so will need to check to make sure of no errors.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The biggest problem with you code which is restricting speed is the fact that the loop is using floating point arithmetic to compare two values. Generally floating point arithmetic is avoided wherever possible since it involves a high overhead and subsequently dramatically slows execution time (excepts being chips designed for this type of operation like high end DSPs).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Usually there is no need to use floating point for such controls since the values collected are generally hexadecimal in nature and are only converted to floating point for human readability.&lt;/P&gt;&lt;P&gt;If you simply scale the values up you will avoid floating point operations and will achieve must faster speeds.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Eg.&lt;/P&gt;&lt;P&gt;fnRoutine(double input)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;if (input &amp;lt; 0.5) {&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;can be replaced by&amp;nbsp;&lt;/P&gt;&lt;P&gt;fnRoutine (unsigned long input)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;if (input &amp;lt;&amp;nbsp; 0x7fffffff) {&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;where the input is represented on a scale from 0 (for 0.000...) to 0xffffffff (for about 1.000000)&amp;nbsp; and 0.5 is (about 0x7ffffffff).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Processors will be able to do this may times faster.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Nov 2009 20:35:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153511#M4197</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2009-11-11T20:35:12Z</dc:date>
    </item>
    <item>
      <title>Re: help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153512#M4198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much for your help; I tried to set all the variables' type to int and now it works as fast as it should.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now, I'm making&amp;nbsp; a 1st order sigma delta with this code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; int counter = 0;&lt;BR /&gt;&amp;nbsp;int Out_sigma2=0;&lt;BR /&gt;&amp;nbsp;int Out_sigma2_old=0;&lt;BR /&gt;&amp;nbsp;int Vout=0;&lt;BR /&gt;int Vin=0;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;void TI1_OnInterrupt(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* Write your code here ... */&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Vin=0; // valore fisso per prova&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Out_sigma2=Vin-Vout+Out_sigma2_old;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (Out_sigma2&amp;lt;0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vout=-1;&lt;BR /&gt;setReg8(MCF_GPIO_CLRAN, 0xDF); &amp;nbsp;&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;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vout=1;&lt;BR /&gt;setReg8(MCF_GPIO_SETAN, 0x20);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Out_sigma2_old=Out_sigma2;&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem is that, setting T1-interrupt's frequency to 800khz, I get an output at about 300khz, instead of 400khz, while if I set T1_interrupt's frequency at 600 khz, I get the expected 300 khz in output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is it possible that the micro can't handle the interrupts properly if they are too fast??&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Nov 2009 00:30:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153512#M4198</guid>
      <dc:creator>Spaccoman</dc:creator>
      <dc:date>2009-11-12T00:30:26Z</dc:date>
    </item>
    <item>
      <title>Re: help about MCF52259 DEMO</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153513#M4199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With interrupts arriving at a rate of&amp;nbsp; 800kHz each interrupt has just 1.25us to be handled. This limits the code that can run during this time to maybe 100 typical instructions if you are lucky, but heavily depending oin the instruction types.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Usually a timer is used to generate such outputs and not SW code, but you will need to see whether there is a timer in the device that is suitable to doing this (check DMA timer and PWM capabilities).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If there is no way around making the decision in SW DSPs are typically used since they are optimised for such functions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Nov 2009 01:05:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/help-about-MCF52259-DEMO/m-p/153513#M4199</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2009-11-12T01:05:55Z</dc:date>
    </item>
  </channel>
</rss>

