プログラム可能な波形発生器 AD9833 と ATmega32-A マイクロ コントローラー (MCLK = 8MHz クロック周波数) を使用して正弦波を生成しようとしています。USART 通信を使用しているため、ハイパー ターミナルで周波数または位相を変更すると、波形の周波数と位相を変更する必要があります。以下に示すように、このための小さなコードを書きました。
しかし、上記のコードから正弦波を生成しています。周波数を入力すると、波形の周波数も正確に変化しますが、位相を変更しようとすると、ここに問題があります。フェーズに 90 度を入力すると、10 度変化しますが、90 度は変化しません。私はビットがありませんか?位相のみの問題。
前もって感謝します。
たとえば2.5度などの位相の浮動小数点値を入力したい場合は、何を変更する必要がありますか。関数の「unsigned int フェーズ」を「float フェーズ」に変更します。そのようにしようとすると、「<<」はフロートと互換性がありません.35.8度としてフェーズに入りたい場合はどうすればよいですか。私に提案してください。
前もって感謝します。