2017-10-03 34 views
0

私はAtmelStudioのAVRをデバッグすることを学んでいます。だから私はテストするための簡単なプログラムを書いています。しかし、正しくコンパイルされますが、期待通りに実行されません。私は、コードATmega32Atmel StudioのAVRのデバッグ

#include <avr/io.h> 
int main(void) 
{ 
DDRA = 0xFF; 
PORTA = (10/100)*255; 
return 0; 
} 

そしてデバッグ開始とブレーク選択デバッグ]メニューから、次の書かれていた 。 IOウィンドウでI/Oポート(PORTA)を選択しました。私はステップ実行のためにF11キーを押しました。 DDRDのみが必要な値で書き込まれますが、portaには値が割り当てられておらず、デバッグは完了しています。 なぜPORTAには何も書かれていません。

答えて

1

整数除算はCで動作するため、10/100は0と評価されるため、実際には0をPORTAに割り当てます。 PORTAの値が0であることがわかると、プログラムは期待どおりに動作しています。スクリーンショットや短いビデオを見ることなく、「portaは価値がない」というあなたの声明を信じるのは難しいです。

あなたはこの代わりに書いて検討するかもしれない:

PORTA = 255 * 10/100; 
関連する問題