以前使用したオシロスコープ時計の残骸を使ってmega644にプログラムを書き込んでみた。
手前の2と見えるのがインダクタ、2mH(オリジナルは10mHを使用)、取りあえず実験なので
電圧がおかしくなるかもしれないが、それは最終的に直すことにする。
まず、OCR2(PD7、21pin)にパルスが出ていなくてはいけないはず、ところが、全く何も出ず。
コンパイル時にもここでエラーが出て644用のレジスタに直したいきさつがある。
オリジナルのapp_cfg_full.hを見ると「タイマ/カウンタ2入力クロック選択」CS20~CS22の記述が
何処にもない。
これではPWMが動作しないのではないだろうか?
#define HV_Boost_Init() (Boost_Stable = 0,HV_Boost_SetRate(0),PortD_SetOutput(P(7)),TCCR2 = (1 << WGM20) | (1 << WGM21) | (1 << COM21) | 1,ADMUX = HV_12V_Sample_MUX,ADC_SetINTEnable(),ADC_Start())
「1<< COM21) | 1,ADMUX =」の部分の中の |1、これは何だろう?
ここは 1<<CS20 とでも書かれているべきでは? よく分からない。
mega644用に次のように記述したがどうも芳しくない、パルスが出ない、、、
#define HV_Boost_Init() (Boost_Stable = 0,HV_Boost_SetRate(0),PortD_SetOutput(P(7)),TCCR2A = (1 << WGM20) | (1 << WGM21) | (1 << COM2A1) | 1, TCCR2B = (1 << WGM22) | (1 << CS20)|(0<< CS21)|(1<<CS22), ADMUX = HV_12V_Sample_MUX,ADC_SetINTEnable(),ADC_Start())
兎に角PWMが働くようにしないと先へは進まない。