2011-09-19 9 views
1

私はこの小さなルーチンをTexas Instruments MSP430でプログラミングするためにC言語を学ぼうとしています。 ((unsigned char *) 0x0023)の部分を理解できますか?定義指令パラメータに関する簡単なコードの混乱

このDefineディレクティブのこの中間部分を理解することに問題があります。私はこれを見てみましたが、((unsigned char *) 0x0023)部分には何も見つかりませんでした。これは型キャストのように見えますが、何もキャストしていません。

私の主な関心事は0x0023(10進数35)です。これは単なる35ビットの符号なしcharポインタですか?

コード:

#define P1IFG_ptr ((unsigned char *) 0x0023) unsigned char result; 

すべてのヘルプは本当に感謝して、事前にあなたに感謝しています。

答えて

3
((unsigned char *) 0x0023) 

私はあなたのコードサンプルでは不足している改行があると思うアドレス0x23

へのポインタです...

MSP430で、これは、ポートP1割り込みフラグレジスタです:

各PxIFGxビットは対応するI/Oピン の割り込みフラグで、選択された入力信号エッジが発生したときにセットされますピン。すべて PxIFGx割り込みフラグは、対応する PxIEビットとGIEビットがセットされているときに割り込みを要求します。各PxIFGフラグは、ソフトウェア でリセットする必要があります。ソフトウェアはまた、各PxIFGフラグをセットして、 がソフトウェアによって開始される割り込みを生成する方法を提供します。ビット= 0:割り込みなし 保留中ビット= 1:割り込みが保留中スタティック レベルではなく、遷移のみが割り込みを発生させます。 Px 割り込みサービスルーチン中にPxIFGxフラグがセットされた場合、または Px割り込みサービスルーチンのRETI命令が実行された後にセットされた場合、PxIFGxフラグ は別の割り込みを生成します。これにより、各トランジションが確認されたことが確認されます( )。

あなたはこのレジスタ、例えば:

unsigned char result; 
result = *P1IFG_ptr; 

から読み取りまたはそれに書き込むことができ、例えば:

*P1IFG_ptr = 1; 
+0

ガイSirton :あなたは絶対に正しかったです! #define P1IFG_ptr =((揮発性のunsigned char *)0x0023); unsigned char result; 非常に徹底的な答えをありがとう! – Celljak

関連する問題