1

Texas Instruments MSP430 でこの小さなルーチンをプログラムするために C を学習しようとしています。その部分を理解するのを手伝ってもらえます((unsigned char *) 0x0023)か?

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

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

コード:

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

どんな助けでも本当に感謝しています、そして前もって感謝します。

4

1 に答える 1

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;
于 2011-09-19T00:58:48.537 に答える