PIC12F1822のAD変換がうまく動かなかった(CCS-Cを使用)

はい,タイトルの通りです.


このPICは32MHzで動作することが可能なのですが,どうも32MHzで動作させると途中で停止してしまうようです.ですが,16MHzで動作させると問題なく動作する様子なので,当面は16MHzで我慢して使うことにします.

その時のプログラムは下記の通りです.
この中の動作周波数を32MHzにすると,私の環境では動かなくなりました.



1 #include <12f1822.h>
2 #device ADC=8; //ADCを8bit変換モードに
3
4 #fuses INTRC_IO,PLL,NOWDT,NOPROTECT,NOMCLR,PUT
5 #use delay(clock = 16000000) //16Mhz
6 #use fast_io(a)
7
8 #define LED_ON output_low(PIN_A5)
9 #define LED_OFF output_high(PIN_A5)
10
11 long int photo(void)
12 {
13 set_adc_channel(2); //AN2に設定
14 delay_us(40);
15 return read_adc();
16 }
17
18 void main()
19 {
20 unsigned char adc;
21
22 setup_oscillator(OSC_4MHZ|OSC_PLL_ON); //内部クロック設定 4 * 4 = 16Mhz
23
24 set_tris_a(0x0f);
25
26 setup_adc_ports(sAN2|VSS_VDD);
27 setup_adc(ADC_CLOCK_INTERNAL);
28
29 while(1)
30 {
31 delay_ms(10);
32 adc = photo();
33
34 if(adc < 128)
35 {
36 LED_ON;
37 }
38 else
39 {
40 LED_OFF;
41 }
42 }
43 }