<?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のトピックSerial Port on a QG8</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Serial-Port-on-a-QG8/m-p/137169#M4611</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;im trying to learn how to use the HCS08 (i got a DEMO9S08QG8) for one my classes and am running into some difficulty finding resources, mostly there is an utter lack of sample code and explanation. ive looked through the sticky, which is nice, but it just skips the serial part. so far, ive made a program that turns led1 on when the phototransistor detects no light, and off when it detects light. now, im trying to extend this program to send a character over serial interface whenever LED1 is on. i got the following function from a freescale program.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void SendChar(char s_char) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;byte dummy; // dummy var for reading SCIS1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SCIC2 = 0x08; // enable Tx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;dummy = SCIS1; // 1st half of TDRE clear procedure&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SCID = s_char; // 2nd half of TDRE clear procedure&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while(!SCIS1_TDRE){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;feedCOP();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while(!SCIS1_TC){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;feedCOP();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SCIC2_TE = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} //end SendChar&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and the following is my program (also put together using pieces of code from freescale)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#include /* for EnableInterrupts macro */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "derivative.h" /* include peripheral declarations */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "demo9S08QG8.h" /*include demo board declarations */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void MCU_init(void); /* Device initialization function declaration */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void main(void) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Uncomment this function call after using Device Initialization&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to use the generated code */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* MCU_init(); */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EnableInterrupts; /* enable interrupts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* include your code here */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ICSC2_BDIV = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LED1 =0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PTBDD_PTBDD6 = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PTBDD_PTBDD1 = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMCLK_PS = 8;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMCLK_CLKS = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMMOD = 112;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMMOD = 0; /* modulo = 50 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMSC = 0x60; /* reset and start MTIM, enable ints */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PTAPE_PTAPE1 = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(;&lt;/SPAN&gt;&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;SPAN&gt; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__RESET_WATCHDOG(); /* feeds the dog */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} /* loop forever */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* please make sure that you never leave this function */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;interrupt 12 void MTIM_ISR(void) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMSC_TOF=0; /* clear TOF */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LED1 = ~PTAD_PTAD1; /* toggle Port */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (~PTAD_PTAD1){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SendChar('a');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;can someone please help in figuring out what i need to do to make this code work? for example, how do i setup the serial interface, like the baud rate and such. thanks in advance for any help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 18 Nov 2006 05:46:38 GMT</pubDate>
    <dc:creator>altezza2k2</dc:creator>
    <dc:date>2006-11-18T05:46:38Z</dc:date>
    <item>
      <title>Serial Port on a QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Serial-Port-on-a-QG8/m-p/137169#M4611</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;im trying to learn how to use the HCS08 (i got a DEMO9S08QG8) for one my classes and am running into some difficulty finding resources, mostly there is an utter lack of sample code and explanation. ive looked through the sticky, which is nice, but it just skips the serial part. so far, ive made a program that turns led1 on when the phototransistor detects no light, and off when it detects light. now, im trying to extend this program to send a character over serial interface whenever LED1 is on. i got the following function from a freescale program.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void SendChar(char s_char) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;byte dummy; // dummy var for reading SCIS1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SCIC2 = 0x08; // enable Tx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;dummy = SCIS1; // 1st half of TDRE clear procedure&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SCID = s_char; // 2nd half of TDRE clear procedure&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while(!SCIS1_TDRE){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;feedCOP();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while(!SCIS1_TC){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;feedCOP();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SCIC2_TE = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} //end SendChar&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and the following is my program (also put together using pieces of code from freescale)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#include /* for EnableInterrupts macro */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "derivative.h" /* include peripheral declarations */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "demo9S08QG8.h" /*include demo board declarations */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void MCU_init(void); /* Device initialization function declaration */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void main(void) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Uncomment this function call after using Device Initialization&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to use the generated code */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* MCU_init(); */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EnableInterrupts; /* enable interrupts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* include your code here */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ICSC2_BDIV = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LED1 =0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PTBDD_PTBDD6 = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PTBDD_PTBDD1 = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMCLK_PS = 8;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMCLK_CLKS = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMMOD = 112;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMMOD = 0; /* modulo = 50 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMSC = 0x60; /* reset and start MTIM, enable ints */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PTAPE_PTAPE1 = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(;&lt;/SPAN&gt;&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;SPAN&gt; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__RESET_WATCHDOG(); /* feeds the dog */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} /* loop forever */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* please make sure that you never leave this function */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;interrupt 12 void MTIM_ISR(void) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MTIMSC_TOF=0; /* clear TOF */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LED1 = ~PTAD_PTAD1; /* toggle Port */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (~PTAD_PTAD1){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SendChar('a');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;can someone please help in figuring out what i need to do to make this code work? for example, how do i setup the serial interface, like the baud rate and such. thanks in advance for any help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Nov 2006 05:46:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Serial-Port-on-a-QG8/m-p/137169#M4611</guid>
      <dc:creator>altezza2k2</dc:creator>
      <dc:date>2006-11-18T05:46:38Z</dc:date>
    </item>
    <item>
      <title>Re: Serial Port on a QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Serial-Port-on-a-QG8/m-p/137170#M4612</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;For now I presume that your example works in that the LED flashes but the 'a' never gets sent???&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;You need to setup the baudrate registers depending on your main clock.&lt;/DIV&gt;&lt;DIV&gt;What is your clock and what baudrate do you want.&lt;/DIV&gt;&lt;DIV&gt;I would enable Tx in your initialisation and leave it on.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and change your routine to this:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void SendChar(char s_char) {&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;while(!SCIS1_TDRE){&lt;BR /&gt;feedCOP();&lt;BR /&gt;};&lt;BR /&gt;SCID = s_char;&lt;BR /&gt;} //end SendChar&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Hope that helps&lt;/DIV&gt;&lt;DIV&gt;Regards&lt;/DIV&gt;&lt;DIV&gt;David&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Nov 2006 07:44:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Serial-Port-on-a-QG8/m-p/137170#M4612</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2006-11-18T07:44:49Z</dc:date>
    </item>
  </channel>
</rss>

