#include "3048f.h" #include "initperi.h" void InitIOPort( void ) ; void InitPort1( void ) ; void InitPort2( void ) ; void InitPort3( void ) ; void InitPort4( void ) ; void InitPort5( void ) ; void InitPort6( void ) ; void InitPort7( void ) ; void InitPort8( void ) ; void InitPortB( void ) ; void InitPortA( void ) ; void InitPeripheral( void ) { SYSCR.BIT.NMIEG = 0 ; SYSCR.BIT.RAME = 1 ; if( MDCR.BIT.MDS == 7 ) { //モード7 の時 InitPort1() ; InitPort2() ; InitPort3() ; InitPort6() ; } InitPort4() ; InitPort5() ; InitPort8() ; InitDataBuffer() ; InitPortA() ; InitPortB() ; } void InitPort1( void ) { P1.DDR = 0xff; } void InitPort2( void ) { P2.DDR = 0xff; P2.PCR.BYTE = 0xff; } void InitPort3( void ) { P3.DDR = 0xff ; P3.DR.BYTE = 0; } void InitPort4( void ) { P4.DDR = 0xff; P4.PCR.BYTE = 0xff ; } void InitPort5( void ) { P5.DDR = 0xff ; P5.DR.BYTE = 0xff; P5.PCR.BYTE = 0xf; } void InitPort6( void ) { P6.DDR = 0xff ; P6.DR.BYTE = 0; } void InitPort7( void ) { } //SIO を使用する場合には、SIO を初期化してから呼び出すこと void InitPort9( void ) { P9.DDR = 0xff - 0x4 - 0x8 ; //P92(RXD0),P93(RXD1)以外は、出力 P9.DR.BYTE = 0 ; //P90(TXD0)を 0 にすると、RS232Cレベルで active } void InitPort8( void ) { IER = 0 ; P8.DDR = 0xf0 ; //1110 0000 // BitClr( ISR, 1 ) ; //IRQ1 ステータスレジスタリセット // BitSet( ISCR, 1 ) ; //IRQ1 センスコントロールレジスタ(たち下がり) // BitSet( IER,1 ) ; //IRQ1 イネーブルレジスタ BitClr( ISR, 2 ) ; //IRQ2 ステータスレジスタリセット BitSet( ISCR, 2 ) ; //IRQ2 センスコントロールレジスタ(たち下がり) // BitClr( ISCR, 2 ) ; //IRQ2 センスコントロールレジスタ(たち下がり) BitSet( IER,2 ) ; //IRQ2 イネーブルレジスタ BitSet( P8DR, 3 ) ; // 外部ram の CS } void InitPortA( void ) { PA.DDR = 0x00 ; PADR = 0 ; } void InitPortB( void ) { //PBDR,5 は、ボタンスイッチ //PBDR,4 は、赤外線 PB.DDR = 0x7 ; NDERB = 0 ; BitClr( PBDR, 1 ) ; //リセット BitSet( PBDR, 2 ) ; //ランダム発声無し BitSet( PBDR, 0 ) ; //CPU でのコントロール } /****************************************************************************** 機能要約 RSSI の割り込み 機能 引数 戻り値 注意 ******************************************************************************/ #pragma interrupt void Irq0( void ) { BitClr( ISR, 0 ) ; //割り込み要因クリア BitClr( IER, 0 ) ; //この割込み禁止 } /****************************************************************************** 機能要約 ボタン SW の割り込み 機能 引数 戻り値 注意 ******************************************************************************/ #pragma interrupt void Irq1( void ) { BitClr( ISR, 1 ) ; // BitClr( IER, 1 ) ; //この割込み禁止 } #pragma interrupt void Irq2( void ) { //IrqCount ++ ; BitClr( ISR, 2 ) ; }