<?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: Alarm timer problems with MCF52234</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173488#M6598</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;And one more note...&amp;nbsp; Usually in the Freescale header files, they give you macros to *encode* the register values (which you used correctly), like:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bit definitions and macros for MCF_RTC_ALRM_HM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MCF_RTC_ALRM_HM_MINUTES(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;amp;0x3F)&amp;lt;&amp;lt;0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MCF_RTC_ALRM_HM_HOURS(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;amp;0x1F)&amp;lt;&amp;lt;0x8)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;However, they often do not give you the converse macros to *decode* the register values (which you want in this instance), so you have to write them by hand or code them explicitly.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;In general, the "encode" and "decode" macros will swap the order of the mask and shift, and will change the direction of the shift, like:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define DECODE_MCF_RTC_ALRM_HM_MINUTES(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;gt;&amp;gt;0)&amp;amp;0x3F)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define DECODE_MCF_RTC_ALRM_HM_HOURS(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;gt;&amp;gt;8)&amp;amp;0x1F)&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Rich T on &lt;SPAN class="date_text"&gt;2008-07-16&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;12:16 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 Jul 2008 01:12:24 GMT</pubDate>
    <dc:creator>RichTestardi</dc:creator>
    <dc:date>2008-07-17T01:12:24Z</dc:date>
    <item>
      <title>Alarm timer problems with MCF52234</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173486#M6596</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;SPAN&gt;Hi folks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to use the Alarm timer in the MCF52234.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Setting up the minutes and seconds is possible.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But I can't set the hour register.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Perhaps I can set all values correcty and the reading command is wrong.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Setting and reading of minutes and seconds is correctly, The hour-value is always 0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I added the Code for you : &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" rel="nofollow noopener noreferrer noopener noreferrer" target="_blank"&gt;&lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;//********** Set Timer*********************************************************////&amp;nbsp; Sets the Timer of the RTC//&amp;nbsp; Firstbyte:&amp;nbsp; 0xAE // ////***************************************************************************** int set_timer(u_char* pBuffer){ int hour, minute, second;&amp;nbsp;&amp;nbsp; pBuffer++; hour = (u_char)*pBuffer;&amp;nbsp;&amp;nbsp; pBuffer++; minute = (u_char)*pBuffer;&amp;nbsp; pBuffer++; second = (u_char)*pBuffer;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_RTC_IER|= MCF_RTC_IER_ALM;&amp;nbsp; // ENABLE INTERRUPT FOR ALARM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_RTC_ALRM_HM = MCF_RTC_ALRM_HM_HOURS(hour) | MCF_RTC_ALRM_HM_MINUTES(minute);&amp;nbsp;&amp;nbsp; MCF_RTC_ALRM_SEC = MCF_RTC_ALRM_SEC_SECONDS(second); } //********** Read Timer*********************************************************////&amp;nbsp; Reads the Timer of the RTC//&amp;nbsp; Firstbyte:&amp;nbsp; 0xAF // ////***************************************************************************** int read_timer(){ int hour, minute, second;&amp;nbsp;&amp;nbsp; second =&amp;nbsp; ((MCF_RTC_ALRM_SEC));&amp;nbsp;&amp;nbsp; minute =&amp;nbsp; ((MCF_RTC_ALRM_HM &amp;amp; 0x0000003F)&amp;lt;&amp;lt;0); hour&amp;nbsp;&amp;nbsp; =&amp;nbsp; ((MCF_RTC_ALRM_HM &amp;amp; 0x0000001F)&amp;lt;&amp;lt;8); //hour =&amp;nbsp;&amp;nbsp; ((MCF_RTC_ALRM_HM &amp;amp; 0x0000001F)&amp;gt;&amp;gt;8);&amp;nbsp; buffer[0]= 0xFF; buffer[1]= minute; buffer[2]= hour; buffer[3]= second; m_send( emg_tcp_communication_socket, (char*)&amp;amp;buffer[0], 4 );}&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;Perhaps someone can have look on it and give me some hints.&lt;BR /&gt;Thank you very much. &lt;SPAN&gt;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" rel="nofollow noopener noreferrer noopener noreferrer" target="_blank"&gt;&lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Best regards.&lt;BR /&gt;&lt;BR /&gt;BlackIP&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by BlackIP on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2008-07-16&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;02:46 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:21:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173486#M6596</guid>
      <dc:creator>BlackIP</dc:creator>
      <dc:date>2020-10-29T09:21:55Z</dc:date>
    </item>
    <item>
      <title>Re: Alarm timer problems with MCF52234</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173487#M6597</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I think this is your bug:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; minute =&amp;nbsp; ((MCF_RTC_ALRM_HM &amp;amp; 0x0000003F)&amp;lt;&amp;lt;0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hour&amp;nbsp;&amp;nbsp; =&amp;nbsp; ((MCF_RTC_ALRM_HM &amp;amp; 0x0000001F)&amp;lt;&amp;lt;8);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I think you want to be reading from the low byte to get the minutes (as you are actually doing), and then from the next more significant byte to get the hours (where you are currently re-reading the low byte), like:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; minute =&amp;nbsp; ((MCF_RTC_ALRM_HM &amp;gt;&amp;gt; 0)&amp;nbsp;&amp;amp; 0x0000003F);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hour&amp;nbsp;&amp;nbsp; =&amp;nbsp; ((MCF_RTC_ALRM_HM &amp;gt;&amp;gt; 8)&amp;nbsp;&amp;amp; 0x0000001F);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-- Rich&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jul 2008 01:04:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173487#M6597</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-07-17T01:04:44Z</dc:date>
    </item>
    <item>
      <title>Re: Alarm timer problems with MCF52234</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173488#M6598</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;And one more note...&amp;nbsp; Usually in the Freescale header files, they give you macros to *encode* the register values (which you used correctly), like:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bit definitions and macros for MCF_RTC_ALRM_HM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MCF_RTC_ALRM_HM_MINUTES(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;amp;0x3F)&amp;lt;&amp;lt;0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MCF_RTC_ALRM_HM_HOURS(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;amp;0x1F)&amp;lt;&amp;lt;0x8)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;However, they often do not give you the converse macros to *decode* the register values (which you want in this instance), so you have to write them by hand or code them explicitly.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;In general, the "encode" and "decode" macros will swap the order of the mask and shift, and will change the direction of the shift, like:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define DECODE_MCF_RTC_ALRM_HM_MINUTES(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;gt;&amp;gt;0)&amp;amp;0x3F)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define DECODE_MCF_RTC_ALRM_HM_HOURS(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (((x)&amp;gt;&amp;gt;8)&amp;amp;0x1F)&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by Rich T on &lt;SPAN class="date_text"&gt;2008-07-16&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;12:16 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jul 2008 01:12:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173488#M6598</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-07-17T01:12:24Z</dc:date>
    </item>
    <item>
      <title>Re: Alarm timer problems with MCF52234</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173489#M6599</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;This works now.&lt;BR /&gt;Thank you very much. &lt;SPAN&gt;&lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" id="smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;BR /&gt;&lt;BR /&gt;Now I am fighting with the interrupt handler.&lt;BR /&gt;Is there any &lt;U&gt;easy&lt;/U&gt; opportunity to connect the RTC, which is already setable and running, with the alarm timer?&lt;BR /&gt;&lt;BR /&gt;I need it for a start-stop condition. E.g. defining a time to start and another time to stop some functions.&lt;BR /&gt;I hope you see my problem.&lt;BR /&gt;&lt;BR /&gt;There are many things to configure, when I look at this thread:&lt;BR /&gt;&amp;nbsp;&lt;A href="http://forums.freescale.com/message?board.id=CFCOMM&amp;amp;message.id=2794&amp;amp;query.id=71515#M2794" rel="nofollow" target="_blank"&gt;http://forums.freescale.com/freescale/board/message?board.id=CFCOMM&amp;amp;message.id=2794&amp;amp;query.id=71515#M2794&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;And the interrupts described in the thread above are all external. I need the internal ones.&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;Thanks for your help.&lt;BR /&gt;&lt;BR /&gt;BlackIP&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jul 2008 16:27:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Alarm-timer-problems-with-MCF52234/m-p/173489#M6599</guid>
      <dc:creator>BlackIP</dc:creator>
      <dc:date>2008-07-17T16:27:03Z</dc:date>
    </item>
  </channel>
</rss>

