ctr_mcu/trunk/user_define.h
n2232 c6145374c7 ■2.0A
SPFL判定ミス修正
user_define.h 接頭辞 0x と 0b を間違えていた。 気づかんよ...
正規表現で軽くチェックしたが他には同じミスは無いと思う

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@384 013db118-44a6-b54f-8bf7-843cb86687b1
2011-08-29 05:17:10 +00:00

235 lines
7.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _USER_DEF_
#define _USER_DEF_
#define IIC_T_SLAVEADDRESS 0x4A
#define IIC_C_SLAVEADDRESS 0x4A
#define IIC_C_SLAVEADDRESS_DMY 0x4C
//#define IIC_SLA_DCP 0x50
#define bits8(a,b,c,d,e,f,g,h) ( a<<7 | b<<6 | c<<5 | d<<4 | e<<3 | f<<2 | g<<1 | h )
#ifndef _WIN32
// 実機環境
#ifdef _debug_led_
/*spfl対応以降、ncでなくなるので使えません
# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; }
# define DBG_LED_off { P2.1 = 0; }
# define DBG_LED_toggle ( P2.1 ^= 1 )
# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; }
# define DBG_LED2_off { P2.2 = 0; }
# define DBG_LED2_toggle ( P2.2 ^= 1 )
*/
#else
# define DBG_LED_on ;
# define DBG_LED_off ;
# define DBG_LED_toggle ;
# define DBG_LED2_on ;
# define DBG_LED2_off ;
# define DBG_LED2_toggle ;
#endif // _debug_led_
#define IIC_SLA_CODEC 0xA4
#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH
#define SLP_ACK P7.7
// PMxは0で出力モード
// SoC
#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; }
#define IRQ0_neg { P7.6 = 1; }
#define IRQ0_enable { PM7.6 = 0; }
#define IRQ0_disable { PM7.6 = 1; }
#define IRQ0 ( P7.6 )
// ↓誤代入防止
#define RESET1_n ( P0.0 )
#if 0 // PM_RESET1を使う
# define RESET1_ast { P0.0 = 0; PM0.0 = 0; }
# define RESET1_neg { PM0.0 = 1; }
#endif
#define RESET2_ast { P0.1 = 0; PM0.1 = 0; }
#define RESET2_neg { PM0.1 = 1; }
#define SLP_REQ P12.0
// CTR,SPFL,まだ見ぬ派生機識別
#define DEV_DET ( P12 & 0b00000110 )
#define DEV_CTR ( 0b00 << 1 )
#define DEV_SPFL ( 0b01 << 1 )
#define DEV_SHRIMP ( 0b10 << 1 )
#define DEV_RSV2 ( 0b11 << 1 )
// FCRAM
#define FCRAM_RST P3.0
#define FCRAM_RST_ast { P3.0 = 0; }
#define FCRAM_RST_neg { P3.0 = 1; }
// CODEC
#define PM_IRQ_n P7.2
// INTP6
// PM
#define PM_EXTDC_n_RAW P7.0
// INTP7
//#define BT_TEMP P15.0
// ANI8
//#define BT_DET P15.1
// ANI9
#define BT_DET_P P1.6
#define BT_TEMP_P P1.7
// SPFLのアモルファスLCDで必要な±15Vの電源。
#define SPFL_LCD_AMOL_HV_CONT P20.2
// 充電せよ(out)
// 負論理です。注意。
#define BT_CHG_ENABLE() ( P4.3 = 0 )
#define BT_CHG_DISABLE() ( P4.3 = 1 )
#define BT_CHG_Ena_n ( P4.3 )
// 充電中(in)
#define BT_IN_CHG_n_RAW P5.1
#define PM_BT_IN_CHG_n PM5.1
#define PU_BT_IN_CHG_n PU5.1
#define SW_WIFI_n_RAW P7.4
#define PM_SW_WIFI_n PM7.4
// KR4
#define SW_POW_n_RAW P7.3
// KR3
#define SW_SEL_n P2.3
#define PM_SW_SEL_n PM2.3
//#define VOL P2.7
// ANI7
#define SW_HOME_n_JIKKI_RAW P20.4
#define PM_SW_HOME_n_JIKKI PM20.4
#define PU_SW_HOME_n_JIKKI PU20.4
// INTP22
#define SW_HOME_n_TSBOARD_RAW P2.0 // TSマザー上でpull up(P2は内蔵p.u.無い)
#define PM_SW_HOME_n_TSBOARD PM2.0
// WiFi
#define WL_TX P20.3 // INTP21
#define PM_WL_TX PM20.3 // INTP21
// RBR制御
#define RBR_RESET_n P2.1
#define RBR_FLIGHT P2.2
//#define LED_CAM P1.0 // TO02
//#define LED_WIFI P1.1 // TO03
//#define LED_NOTIFY P1.3 // TO05
//#define LED_3D P5.2 // SLTO ← TO01
//#define LED_POW2 P1.4 // TO06 ( 青 )
//#define LED_POW1 P1.5 // TO07 ( 赤 )
//#define LED_CHARGE P2.4
// P5.3 に加え、P5.5, P140 P141
// P140が出力専用なので...
#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; }
#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; }
#define GYRO_ENABLE() P5.0 = 0
#define GYRO_DISABLE() P5.0 = 1
//#define I2C_M_SDA P3.1 // SDA10
//#define I2C_M_SCL P3.2 // SCL10
//#define I2C_0_SCL P6.0 // IIC_TWL SCL0
//#define I2C_0_SDA P6.1 // SDA0
//#define I2C_1_SCL P20.0 // IIC CTR SCL1
//#define I2C_1_SDA P20.1 // SDA1
//#define 32kHz_O P1.2 // RTCCL
//#define 32k_I1 P12.3 // XT1
//#define 32k_I2 P12.4 // XT2
// 実機、開発機、試遊台判別。
#define DIPSW ( P4 & 0b00000011 ) // mini cube & ソフトウェアディップスイッチ TOOL0,1。 P4.0は L 注意!
#define DIPSW_CTR 0b11 // 未使用
#define DIPSW_ISDEV 0b00 // KuCはBattGaugeで判別
#define DIPSW_TAIKENDAI 0b10
#define DIPSW_TAIKENDAI_NBD 0b01
#define SHELL_OPEN_RAW P7.1 // INTP5 ふた開閉 (閉じるとL)
#define ACC_VALID P20.5
#define PM_ACC_VALID PM20.5
#define ACCEL_INT1 P2.5
#define PM_ACCEL_INT1 PM2.5
#endif // _WIN32
// win32 sim環境と共通
#define KR_SW_POW ( 1 << 3 )
#define KR_SW_WIFI ( 1 << 4 )
///////////////////////////////////////////////////////////
#define INT_MSK0_IIC_M_DMA 1<<12
#define INT_MSK0_SHELL 1<<7
#define INT_MSK0_EXTDC 1<<6
//#define INT_MSK0_SLP 1<<2
#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC )
#define INT_MSK1_KR 1<<11
#define INT_MSK1_RTCINTVAL 1<<10
#define INT_MSK1_RTCALARM 1<<9
#define INT_MSK1_ADC 1<<8
#define INT_MSK1_IIC_CTR 1<<3
#define INT_MSK1_IIC_MCU 1<<0
#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \
| INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU )
#define INT_MSK2_WIFI_TX_KE3 1<<4
#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 )
#define INT_MSK2_IIC_TWL 1<<8
#define INT_MSK2_WIFI_TX_BSR 1<<10
#define INT_MSK2_CODEC_PMIRQ 1<<3
#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ )
#if 0
#define INT_MSK0_IIC_M_DMA 0b0001000000000000
#define INT_MSK0_SHELL 0b0000000010000000
#define INT_MSK0_EXTDC 0b0000000001000000
//#define INT_MSK0_SLP 0b0000000000000100 )
//#define INT_MSK0_RSV 0b1110111100111011 )
#define INT_MSK0_RSV 0b1110111100111111
#define INT_MSK1_KR 0b0000100000000000
#define INT_MSK1_RTCINTVAL 0b0000010000000000
#define INT_MSK1_RTCALARM 0b0000001000000000
#define INT_MSK1_ADC 0b0000000100000000
#define INT_MSK1_IIC_CTR 0b0000000000001000
#define INT_MSK1_IIC_MCU 0b0000000000000001
#define INT_MSK1_RSV 0b1111000011110110
#define INT_MSK2_WIFI_TX_KE3 0b00010000
#define INT_MSK2L_RSV 0b11101111
#define INT_MSK2_IIC_TWL ( 0b0000000100000000 )
#define INT_MSK2_WIFI_TX_BSR ( 0b0000010000000000 )
#define INT_MSK2_CODEC_PMIRQ ( 0b0000000000001000 )
#define INT_MSK2_RSV 0b1111101111110111
#endif // 0
#endif // dupe include guard