<?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>topic Re: HCS08 ADC (Analog to digital) in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229250#M19366</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P align="justify" style="border-bottom: medium none; border-left: #dcdcdc 0.75pt solid; border-top: medium none; border-right: medium none;"&gt;Hi Chris&lt;/P&gt;&lt;P&gt;I cannot completely understand your C code: I am an assembler lover. In any case I cannot see ADC configuration: this is usually done at the program initialization. You have to assign the ADC clock source and prescaler if any in ADCCFG and the physical pin I/O you intend to use for ADC input(s).&lt;/P&gt;&lt;P&gt;With standard device declaration.inc, in assembler this would be something like this:&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; Initial declarations&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADICLK1m equ %00000000&amp;nbsp; ; Bus clock&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADIV4m equ %01000000&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Input Clock /4&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADMODE08m equ %00000000 ; 8-bit mode ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; I/O ADC used ports&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pt_Ch_L&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; AD11 pin control reg.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_L_in_m&amp;nbsp; EQU %00001011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; channel AD11 (Ch Left)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_L_in&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL2_ADPC11 ; pin control&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pt_Ch_R&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; AD7 pin control reg.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_R_in_m&amp;nbsp; EQU %00000111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; channel AD7 (Ch Right)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_R_in&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL1_ADPC7&amp;nbsp; ; pin control&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; ADC initialization, 20MHz BusClock&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; ADCclk= BusClock/4 (5MHz), 8bit ADC, short sample&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda #(ADICLK1m+ADIV4m+ADMODE08m)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta ADCCFG&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset Ch_R_in,&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;Pt_Ch_R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt; ; assign Ch_R_in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt; to ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset Ch_L_in,&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;Pt_Ch_L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt;; assign Ch_L_in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt; to ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;; ADC conversion on CH_L_in and Ch_R_in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov #Ch_L_in_m,ADCSC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; start sample L&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; brclr ADCSC1_COCO,ADCSC1,* ; loops here untill conv. end&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda ADCRL&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; ; 8bit result in A&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov #Ch_R_in_m,ADCSC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; start sample R&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; brclr ADCSC1_COCO,ADCSC1,* ; conv. end?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldx ADCRL&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; ; 8bit result in X&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code snippet does a sequential 8bit conversion on two different channels. I think you too may do an 8bit conversion to read 3 buttons: you do not need 10bit resolution for this, but this is a minor problem, the example would be the same with the addition of reading ADCRH as you correctly do.&lt;/P&gt;&lt;P&gt;You may see there is an ADC and I/O port initial configuration you completely miss. Obviously you do not need the first literal assignments if you use the correct numerical constants in the sequential instructions. Please note you, as in my case, do not need AD1SC2 writing: it is always =0 from CPU reset. You need only to write on ADC1SC1 to start the conversion.&lt;/P&gt;&lt;P&gt;I think this example is so simple you can easily translate in C in the same manner I read your code. Good luck&lt;/P&gt;&lt;P&gt;Salvatore&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 20 Jan 2013 00:58:12 GMT</pubDate>
    <dc:creator>Encoder1</dc:creator>
    <dc:date>2013-01-20T00:58:12Z</dc:date>
    <item>
      <title>HCS08 ADC (Analog to digital)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229249#M19365</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Everyone!&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have three buttons, each on different voltage dividers. They are connected to an ADC pin on my microcontroller. I am having trouble getting them to respond though. &lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I setup ADC1SC2 for software triggering, and set ADC1SC1_ADCH to the correct input channel. The problem is that it doesn't seem they are initiating a conversion. I send data to ADC1SC1 to trigger the conversion, but nothing gets written to ADC1RH and ADC1RL. &lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is a code snippet I have been working off of. &lt;/P&gt;&lt;P&gt;Thanks in advance for any help!&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="j-rte-table"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;int result_H2bit;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;int result_L8bit;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;ADC1SC1 = 0x01;//input channel 0001 = PTB1/AD1P1 - Pin Control ADPC1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;ADC1SC2 = 0x00;//no conv. in progress, Software trigger, compare function disabled&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;PTED &amp;amp;= ~0x01; //LED indicator on&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;while ((ADC1SC1 &amp;amp; 0x80) == 0x01)&amp;nbsp; //While 7th bit is set, won't proceed&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;while ((ADC1SC2 &amp;amp; 0x80) == 0x01)&amp;nbsp; //while 7th bit is set, won't proceed&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;result_H2bit = ADC1RH; //the 2 high bits of the 10-bit conversion&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style=""&gt;&lt;/TD&gt;&lt;TD style=""&gt;result_L8bit = ADC1RL; //lower 8 bits of the 10-bit conversion&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2013 00:26:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229249#M19365</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2013-01-18T00:26:17Z</dc:date>
    </item>
    <item>
      <title>Re: HCS08 ADC (Analog to digital)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229250#M19366</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P align="justify" style="border-bottom: medium none; border-left: #dcdcdc 0.75pt solid; border-top: medium none; border-right: medium none;"&gt;Hi Chris&lt;/P&gt;&lt;P&gt;I cannot completely understand your C code: I am an assembler lover. In any case I cannot see ADC configuration: this is usually done at the program initialization. You have to assign the ADC clock source and prescaler if any in ADCCFG and the physical pin I/O you intend to use for ADC input(s).&lt;/P&gt;&lt;P&gt;With standard device declaration.inc, in assembler this would be something like this:&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; Initial declarations&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADICLK1m equ %00000000&amp;nbsp; ; Bus clock&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADIV4m equ %01000000&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Input Clock /4&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADMODE08m equ %00000000 ; 8-bit mode ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; I/O ADC used ports&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pt_Ch_L&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; AD11 pin control reg.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_L_in_m&amp;nbsp; EQU %00001011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; channel AD11 (Ch Left)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_L_in&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL2_ADPC11 ; pin control&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pt_Ch_R&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; AD7 pin control reg.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_R_in_m&amp;nbsp; EQU %00000111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; channel AD7 (Ch Right)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ch_R_in&amp;nbsp;&amp;nbsp;&amp;nbsp; EQU APCTL1_ADPC7&amp;nbsp; ; pin control&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; ADC initialization, 20MHz BusClock&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;; ADCclk= BusClock/4 (5MHz), 8bit ADC, short sample&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda #(ADICLK1m+ADIV4m+ADMODE08m)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta ADCCFG&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset Ch_R_in,&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;Pt_Ch_R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt; ; assign Ch_R_in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt; to ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bset Ch_L_in,&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;Pt_Ch_L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="en-GB"&gt;&lt;STRONG&gt;; assign Ch_L_in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt; to ADC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;SPAN lang="it-IT"&gt;&lt;STRONG&gt;; ADC conversion on CH_L_in and Ch_R_in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov #Ch_L_in_m,ADCSC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; start sample L&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; brclr ADCSC1_COCO,ADCSC1,* ; loops here untill conv. end&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda ADCRL&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; ; 8bit result in A&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov #Ch_R_in_m,ADCSC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; start sample R&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; brclr ADCSC1_COCO,ADCSC1,* ; conv. end?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P lang="it-IT"&gt;&lt;SPAN style="color: #000000; font-size: 8pt; font-family: Courier New, monospace;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldx ADCRL&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; ; 8bit result in X&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code snippet does a sequential 8bit conversion on two different channels. I think you too may do an 8bit conversion to read 3 buttons: you do not need 10bit resolution for this, but this is a minor problem, the example would be the same with the addition of reading ADCRH as you correctly do.&lt;/P&gt;&lt;P&gt;You may see there is an ADC and I/O port initial configuration you completely miss. Obviously you do not need the first literal assignments if you use the correct numerical constants in the sequential instructions. Please note you, as in my case, do not need AD1SC2 writing: it is always =0 from CPU reset. You need only to write on ADC1SC1 to start the conversion.&lt;/P&gt;&lt;P&gt;I think this example is so simple you can easily translate in C in the same manner I read your code. Good luck&lt;/P&gt;&lt;P&gt;Salvatore&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 Jan 2013 00:58:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229250#M19366</guid>
      <dc:creator>Encoder1</dc:creator>
      <dc:date>2013-01-20T00:58:12Z</dc:date>
    </item>
    <item>
      <title>Re: HCS08 ADC (Analog to digital)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229251#M19367</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I think there is something wrong in:&lt;/P&gt;&lt;P&gt;while ((ADC1SC1 &amp;amp; 0x80) == 0x01)&amp;nbsp; //While 7th bit is set, won't proceed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the last bit(COCO, Conversion Complete Flag) means: Conversion completed=1;Conversion not completed=0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wait until COCO is 1 (wait until Conversion is completed) works with:&lt;/P&gt;&lt;P&gt;while (!(ADC1SC1 &amp;amp; 0x80));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also wrote an ADC-routine and I have this:&lt;/P&gt;&lt;P&gt;while(!ADCSC1_COCO);//wait until ADC-meaurement is finished&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;your routine "while ((ADC1SC1 &amp;amp; 0x80) == 0x01)" does not work, because&lt;/P&gt;&lt;P&gt;ADC1SC1 &amp;amp; 0x80 -&amp;gt; this can be 0x80 or 0x00 (&amp;amp; is logic AND)&lt;/P&gt;&lt;P&gt;and if you compare this result with 0x01, like (0x80 or 0x00) == 0x01 always result False (== is arith. AND)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps&lt;/P&gt;&lt;P&gt;Mike&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2013 08:45:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229251#M19367</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2013-02-18T08:45:24Z</dc:date>
    </item>
    <item>
      <title>Re: HCS08 ADC (Analog to digital)</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229252#M19368</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In addition to Mike's comments about your wait-for-conversion loop, there is another problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp; ADC1SC1 = 0x01; // Start single conversion for channel 1, no interrupt&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp; ADC1SC2 = 0x00; // &lt;SPAN style="color: #ff0000;"&gt;Aborts conversion just started&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; color: #333333;"&gt;The register ADC1SC2 should be initialised at the same time as the other ADC registers, prior to the start of any conversion.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; color: #333333;"&gt;Additionally, I believe the following simplification will work correctly -&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier; color: #333333;"&gt;unsigned int ADCresult;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier; color: #333333;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier; color: #333333;"&gt;ADCresult = ADC1R;&amp;nbsp; // 16 bits simultaneously read&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; color: #333333;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; color: #333333;"&gt;Mac&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Feb 2013 05:48:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/HCS08-ADC-Analog-to-digital/m-p/229252#M19368</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2013-02-19T05:48:39Z</dc:date>
    </item>
  </channel>
</rss>

