[admin2 2010-06-18 13:05:05]:
<p>>coron_IOA_ADValue[8]={0,0,0,0,0,0,0,0}; //AD結果収納バッファ<---変更 <br />//==============================================================================//<br />>DMA_InitStructure.DMA_BufferSize =8; //8ポート分のバッファ<-----変更 <br />>ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 8<-----変更; <br />>ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 regular channels configuration */ <br />>if(IOA_pin_0==(port&0x0001)){ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, IOA_ADC_SampleTime);} <br />>if(IOA_pin_1==(port&0x0002)){ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, IOA_ADC_SampleTime);}<br />>if(IOA_pin_2==(port&0x0004)){ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 3, IOA_ADC_SampleTime);}<br />>if(IOA_pin_3==(port&0x0008)){ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 4, IOA_ADC_SampleTime);}<br />>if(IOA_pin_4==(port&0x0010)){ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 5, IOA_ADC_SampleTime);}<br />>if(IOA_pin_5==(port&0x0020)){ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 6, IOA_ADC_SampleTime);} <br />>//AD変換するポートを追加する場合下記を上記の下に追加するだけで良いでしょうか?? <br />>ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 7, IOA_ADC_SampleTime);<br />>ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 8, IOA_ADC_SampleTime);</p>
<p> </p>
<p>はい、基本的な使い方としてはそれだけで大丈夫です。</p>
<p>あとは、coron_IOA_ADValueのサイズの変更に合わせて、coron_ad.hのextern宣言のサイズも下記のように変えておくことと、</p>
<p>extern vu16 coron_IOA_ADValue[8];</p>
<p> </p>
<p>数個前の投稿に書いたように、以下のGPIOの設定も一緒にしてください。</p>
GPIO_InitTypeDef GPIO_InitStructure;<br /> <br /> //PA5とPA6をAINに設定する<br /> GPIO_StructInit(&GPIO_InitStructure);<br /> GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;
<p> GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;<br /> GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;<br /> GPIO_Init(GPIOA, &GPIO_InitStructure);</p>