<?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>8-bit MicrocontrollersのトピックRe: Help with programming - 68hc908gp32</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198216#M16012</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;- You need another timer to time the change between duty cycles.&lt;BR /&gt;- For example use the RTC interrupt with a count down.&lt;BR /&gt;- When the count reaches 0, you would write to the duty cycle register to change it.&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Mar 2008 03:19:20 GMT</pubDate>
    <dc:creator>JimDon</dc:creator>
    <dc:date>2008-03-04T03:19:20Z</dc:date>
    <item>
      <title>Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198213#M16009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;P&gt;Greetings people, I'm currently using PWM to control an output current feeding into a charging circuit&lt;BR /&gt;I have managed to get the PWM coding working with various duty cycle&lt;BR /&gt;My query is , how do i get the PWM signal to vary from let's say 80%-&amp;gt;60%-&amp;gt;40%-&amp;gt;20%-&amp;gt;etc with an interval between the duty cycle about 5 Minutes...Do i vary the duty cycle or the period???&lt;BR /&gt;&lt;BR /&gt;By the way im utilizing the 68hc908gp32 processor...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you...hoping to get an answer ASAP....&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Once again TQ&lt;SPAN&gt;:&lt;SPAN&gt;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-sad.gif"&gt;&lt;IMG alt=":smileysad:" class="emoticon emoticon-smileysad" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-sad.gif" title="Smiley Sad" /&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Added p/n to subject.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by NLFSJ on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2008-02-29&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;09:13 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Feb 2008 22:35:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198213#M16009</guid>
      <dc:creator>XC</dc:creator>
      <dc:date>2008-02-29T22:35:53Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198214#M16010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hello,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For such a long PWM period, you will not be able to directly generate a PWM output using a TIM channel.&amp;nbsp; A simple alternative might be to count each timer overflow, and use the count value as a basis for switching the required output pin.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The increment and testing of the counter value might be done within the TIM overflow ISR.&amp;nbsp; Assuming that the counter is a 16-bit value, the&amp;nbsp;overflow period should be&amp;nbsp;5 milliseconds, or greater, to achieve 300 second PWM cycle period.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Let's assume an overflow period of 30 milliseconds.&amp;nbsp; The number of overflows for a full PWM cycle would be 10000.&amp;nbsp; When the counter reaches this value, it would be cleared, and the output set active.&amp;nbsp; When the counter reaches a value corresponding to the required duty (1000 for each 10 percent), the output would be set inactive.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Mac&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2008-03-04&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;04:38 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 01:33:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198214#M16010</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-04T01:33:13Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198215#M16011</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I'm not sure that is clear exactly what you want.&amp;nbsp; It seems bigmac thinks you want a period of 5 minutes but I am not sure this is what you are wanting.&amp;nbsp; I thought you might want to decrease the duty cycle from 80% to 20% over a period of 5 minutes, is this the case?&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 03:01:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198215#M16011</guid>
      <dc:creator>allawtterb</dc:creator>
      <dc:date>2008-03-04T03:01:28Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198216#M16012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;- You need another timer to time the change between duty cycles.&lt;BR /&gt;- For example use the RTC interrupt with a count down.&lt;BR /&gt;- When the count reaches 0, you would write to the duty cycle register to change it.&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 03:19:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198216#M16012</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2008-03-04T03:19:20Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198217#M16013</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi XC,&lt;BR /&gt;&lt;BR /&gt;Firstly, to directly answer your specific question:&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;XC wrote:&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;P&gt;Do i vary the duty cycle or the period???&lt;BR /&gt;&lt;BR /&gt;By the way im utilizing the 68hc908gp32 processor...&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;SPAN class="time_text"&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;You vary the duty cycle or pulse width. Varying the period is frequency modulation, not Pulse Width Modulation (PWM).&lt;BR /&gt;As you have specified the GP32 this only has one two channel timer.&lt;BR /&gt;If you use buffered PWM it is all used up, even unbuffered leaves you with a fast probably low count on the second channel. This means you will probably have to count the periods in order to generate the time periods to do the PW changes.&lt;BR /&gt;Perhaps you could do smaller steps to make the time periods between them shorter (count value smaller).&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 05:25:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198217#M16013</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2008-03-04T05:25:35Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198218#M16014</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Assuming my original interpretation of your problem is incorrect, and that described by &lt;STRONG&gt;allawtterb&lt;/STRONG&gt; is the correct one -&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Provided you don't need the second TIM channel for another purpose, the use of unbuffered PWM will probably be simpler than an&amp;nbsp;alternative output compare&amp;nbsp;process.&amp;nbsp; You do not say what PWM frequency you require, but for a battery charging application, I suspect it will not be critical, and need not be very high.&amp;nbsp; If this is so, you may not need to change the TMOD setting from its default value, so the spare channel would remain fully useable.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;As Peg has said, the counting of TIM overflows would seem a reasonable method of timing the current&amp;nbsp;profile over an extended period.&amp;nbsp; If you are programming in C, it is easy to use a 16-bit or 32-bit variable as the counter, so this should not give any practical restriction on the timing interval.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;While unbuffered PWM does not need the use of interrupts for a steady duty cycle output, to change the duty cycle in a smooth, non-disruptive manner may require the use of the channel interrupt.&amp;nbsp; This is to avoid the possibility of a spurious pulse during the transition to the new duty cycle.&amp;nbsp; This may not be particularly critical for the battery charging application, if only a few duty cycle steps are necessary, but may become more important if many more smaller steps are used.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The following sequence of events might be used to change to a new duty cycle -&lt;/DIV&gt;&lt;OL&gt;&lt;LI&gt;During normal operation, the TIM overflow interrupt would be enabled, and the channel interrupt would be disabled.&lt;/LI&gt;&lt;LI&gt;Within the overflow ISR, it would be decided when each duty cycle update is required.&amp;nbsp; The new value could be placed within a suitable global variable, and the TIM channel interrupt then enabled, before exiting the ISR.&lt;/LI&gt;&lt;LI&gt;The next TIM&amp;nbsp;interrupt event will be the channel interrupt, and this will occur after the channel output pin has returned to an inactive state.&amp;nbsp; The global variable value would be transferred to the channel register, and further channel interrupts then disabled, before exiting the ISR.&lt;/LI&gt;&lt;/OL&gt;&lt;DIV&gt;Since the PWM output is inactive when the channel register is updated, there can be no spurious pulse whether duty cycle is decreased or increased.&amp;nbsp; The next pulse will commence with the following overflow.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Mac&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 09:01:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198218#M16014</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-04T09:01:17Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198219#M16015</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi....&lt;BR /&gt;These are the codes that i have written..doesnt seem rite though..&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;org&amp;nbsp;&amp;nbsp; flash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;start main code at the beginning of flash&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;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;init&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov #$01,config2&amp;nbsp;&amp;nbsp;&amp;nbsp; ;Osc disable on stop, SCI clock source internal&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov #$31,config1&amp;nbsp;&amp;nbsp;&amp;nbsp; ;COP disabled, all other default&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldhx #$0240&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;load HX with the end of memory location&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;put the stack pointer at the end of memory&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clra&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;clears A, X, and H regs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clrx&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clrh&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;****************&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory definitions&amp;nbsp;&amp;nbsp; *****************************&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; jsr&amp;nbsp; duty_80&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*Timer initialization subroutine for 80% duty cycle(20% of C)&lt;BR /&gt;&lt;BR /&gt;duty_80:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1sc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$70&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1sc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1sc0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$1e,t1sc0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldhx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$bfff&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sthx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1modh&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$a0,t1ch0h&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$00,t1ch0l ; duty cycle&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bclr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5,t1sc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISR_routine&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&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;&lt;BR /&gt;*Interrupt service routine for Various Duty Cycle with internal Timer&lt;BR /&gt;&lt;BR /&gt;ISR_routine:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cli&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;here:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bra&amp;nbsp; here&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&lt;BR /&gt;&lt;BR /&gt;*timer counter overflow&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;outov&amp;nbsp;&amp;nbsp; inc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldhx&amp;nbsp;&amp;nbsp;&amp;nbsp; #!10000&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cphx&amp;nbsp;&amp;nbsp;&amp;nbsp; count&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; beq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_duty&lt;BR /&gt;&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; rti&lt;BR /&gt;&lt;BR /&gt;new_duty mov&amp;nbsp;&amp;nbsp;&amp;nbsp; #$20,t1ch0h&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; #$00,t1ch0l ; duty cycle&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset&amp;nbsp;&amp;nbsp; 6,t1sc0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rti&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Do i use Buffered or unbuffered PWM ???&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;this is my initial working pwm code....how do i vary the duty cycle with an interval of 5 Minutes..using this way?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*main&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $8000&lt;BR /&gt;&lt;BR /&gt;init&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$31,config1&lt;BR /&gt;again:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$80&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; duty&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pwmd4&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bra&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; again&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*tim initialization&lt;BR /&gt;&lt;BR /&gt;pwmd4:&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1sc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$73&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1sc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1sc0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$5a,t1sc0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldhx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$00ff&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sthx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1modh&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$00,t1ch0h&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$d0,t1ch0l ; duty cycle&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bclr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5,t1sc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cli&lt;BR /&gt;here:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bra&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; here&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rts&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;* output compare&lt;BR /&gt;&lt;BR /&gt;outcp&amp;nbsp;&amp;nbsp; bclr&amp;nbsp;&amp;nbsp;&amp;nbsp; 7,t1sc0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rti&lt;BR /&gt;&lt;BR /&gt;*timer counter overflow&lt;BR /&gt;&lt;BR /&gt;outov&amp;nbsp;&amp;nbsp; bclr&amp;nbsp;&amp;nbsp;&amp;nbsp; 7,t1sc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rti&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 19:31:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198219#M16015</guid>
      <dc:creator>XC</dc:creator>
      <dc:date>2008-03-04T19:31:57Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198220#M16016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The code that you posted seemed to have structural errors, as well as&amp;nbsp;a number of&amp;nbsp;programming errors and omissions.&amp;nbsp; Rather than itemise each problem, which will possibly result in confusion, I have attached a sample absolute assembly program.&amp;nbsp; This handles unbuffered PWM along the lines that I previously described, and provides a timed decrement&amp;nbsp;of PWM duty.&amp;nbsp; You might&amp;nbsp;consider this as a basic framework for your project.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The code&amp;nbsp;should assemble using CW, but is otherwise untested.&amp;nbsp; For timing purposes, a bus frequency of 4.0 MHz has been assumed.&amp;nbsp; If a different bus frequency is used, this will require adjusment of the timing constants.&amp;nbsp; I have omitted the code for initialisation of the CGM and associated PLL, and for GPIO initialisation, but this will need to be done.&amp;nbsp; You might consider using a 32.768 kHz crystal, which the 'GP32 is intended to accommodate.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Mac&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2008 02:00:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198220#M16016</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-03-07T02:00:25Z</dc:date>
    </item>
    <item>
      <title>Re: Help with programming - 68hc908gp32</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198221#M16017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Thanks for the reply.....will look into the codes ASAP and understand it ...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you once again....&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2008 20:44:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Help-with-programming-68hc908gp32/m-p/198221#M16017</guid>
      <dc:creator>XC</dc:creator>
      <dc:date>2008-03-07T20:44:51Z</dc:date>
    </item>
  </channel>
</rss>

