前の記事で そらさんから 波形に若干の歪みが出てる事を御指摘頂いて
プログラムの確認をしてみた
その前に わざと より強く症状が出るようにした波形が これ
波形を1/4分だけ 上下に少しずらしたような波形になる
まずは 読み込ませるサイン波のデータに狂いが無いか?
プログラムで順番にデータをLCDに表示させてエクセルに記録して
グラフにしてみると
まったく問題はなく 綺麗に計算されている
プログラムを じっくりと確認してみるものの 可笑しなところは見付からない
ひょっとして?
という部分で Compare1aやCompare1b の値を設定する部分
タイマーが走ってる間に この値を変える事が原因か、と
この手前で
Stop timer1 で止めて 設定してから Start timer1 で スタートし
ついでに
Timer1=0
と して カウントを0にしてみると 波形が綺麗になった
(まだ ほんの少し角が出てるかな?)
次に Timer1=0 だけ消すと また歪みが出る
今度は Timer1=0 を戻して
Stop timer1 とStart timer1 を消すと 歪みが出ない
結局のところCompare1aやCompare1b の値を設定する部分でTimer1のカウントをクリアしてやると解決する
でも キャリア周波数を1.8KHzあたりまで下げていくと これをやっても症状が出るので 完全な解決策では無いかも知れない
ま、でも 充分に許容範囲に入ったかと思うので 解決した事にしておこう
と言いながら なぜ解決するのかは さっぱり解らないのが正直なところ!