- 初めてのPIC 0x10
315 :774ワット発電中さん[]:2018/07/12(木) 19:51:26.66 ID:GkTNoM2f - すみませんが、質問です。
16F1827でRB3(AN9)に繋いだ可変抵抗からの電圧をAD変換して、 電圧の上中下3種類に分類してRA1、RA2,RA3に繋いだLEDのどれかを点灯させようと プログラムを書きましたが、起動確認の点滅以後、LED消灯状態で動きません。 アドバイスなどいただけないでしょうか? 使用環境はMikroCです。 MikroCで16F1827だと、ADC_Read命令は使用不可とネットで見ましたので、 ADC_Get_Sampleで読み込んでいます。 void main() { unsigned int ad; OSCCON = 0b01110000; //内部8MHz ANSELA = 0b00000000; //アナログ入力なし ANSELB = 0b00001000; //アナログ入力AN9 CM1CON0.C1ON = 0; //コンパレータ使用しない CM1CON0.C2ON = 0; //コンパレータ使用しない TRISA = 0b00000000; //出力 TRISB = 0b00001000; //RB3(AN9)だけ入力,他は出力 PORTA = 0b00000000; //ポートクリア PORTA = 0B00000000; //ポートクリア PORTA 0b00001110; //起動確認LED点滅2回 delay_ms(500); PORTA 0b00000000; delay_ms(500); PORTA 0b00001110; delay_ms(500); PORTA 0b00000000; ADC_Init(); //ADC初期化 while(1){ ad = ADC_Get_Sample(9); //AN9から読み込むadには0から1024が入る if(ad << 341){PORTA 0b00000010;} //341以下ならRA1点灯 if(ad >> 342 && ad << 681){PORTA 0b00000100;} //342から681ならRA2点灯 if(ad >> 682){PORTA 0b00001000;} //682以上ならRA3点灯 } } よろしくお願いします。
|