前提・実現したいこと
現在マイコンでのアナログ入力を試しているのですがうまく動かせておりません。
下記の事をしたいのですがお力をお貸しいただけますでしょうか。
最終的に複数のスライドボリューム(可変抵抗器)とマイコンのアナログ入力から
LEDをPWM調光する。
ここに質問の内容を詳しく書いてください。
使用マイコン
pic24fj64ga002
接続
スライドボリューム ー>(アナログ入力)マイコン(アウトプット)ー>抵抗ー>LED
上記接続時に手動サンプリングのプログラムがうまく動かせない
発生している問題・エラーメッセージ
MCCでEnable Auto Samplingにチェックを入れた場合はAN0からの値を読み取れて
LEDの調光ができるのですが
手動でサンプリングを行おうとしたときに値をAN0から読み取ろうとしない。
ソースコード自体はMCC v4のadc1.hのサンプルコードを参照しております。
エラーメッセージ 無し
該当のソースコード
xc16 + mcc
C言語 (xc16
1ソースコード 2 3#include "mcc_generated_files/system.h" 4#include "mcc_generated_files/adc1.h" 5 6// 32000000UL/2 system.hにて#define _XTAL_FREQ定義 7#define FCY 16000000UL 8#include <libpic30.h> 9 10 11int main(void) 12{ 13 14 unsigned int conversion; 15 16 // initialize the device 17 SYSTEM_Initialize(); 18 ADC1_Initialize(); 19 while (1) 20 { 21 ADC1_ChannelSelect(channel_AN0); 22 ADC1_Start(); 23 //Provide Delay充電時間? 24 __delay_us(20); 25 ADC1_Stop(); 26 while(!ADC1_IsConversionComplete()) 27 { 28 ADC1_Tasks(); 29 } 30 conversion = ADC1_ConversionResultGet(); 31 32 33 // conversion= (ADC1_GetConversion(0x00)); 34 //PWM分解能8bit(10bit/4) 35 OC1RS=(conversion/4); 36 __delay_us(20); 37 38 // Add your application code 39 40 } 41 42 return 1; 43}
試したこと
他のチャンネルでも読み取れなかったAN1,AN9~AN12
充電時間120usでも同様
Enable ADC Interruptのチェック
void ADC1_ChannelSelect( ADC1_CHANNEL channel ) { AD1CHS = channel; //ここを直接値を入れても同様 0x0000 や0b00000000 }
補足情報(FW/ツールのバージョンなど)
PICKIT3
PIC24F-GA-GB_DEP 1.4.141
xc16 v1.6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/23 00:25
2021/03/23 17:47
2021/03/24 10:38