SmartOS/Platform/Pin.h

194 lines
3.1 KiB
C

#ifndef _PIN_H_
#define _PIN_H_
/* 针脚 ------------------------------------------------------------------*/
enum Pin
{
P0 = 0xFF,
PA0 = 0x00,
PA1 = 0x01,
PA2 = 0x02,
PA3 = 0x03,
PA4 = 0x04,
PA5 = 0x05,
PA6 = 0x06,
PA7 = 0x07,
PA8 = 0x08,
PA9 = 0x09,
PA10 = 0x0A,
PA11 = 0x0B,
PA12 = 0x0C,
PA13 = 0x0D,
PA14 = 0x0E,
PA15 = 0x0F,
PB0 = 0x10,
PB1 = 0x11,
PB2 = 0x12,
PB3 = 0x13,
PB4 = 0x14,
PB5 = 0x15,
PB6 = 0x16,
PB7 = 0x17,
PB8 = 0x18,
PB9 = 0x19,
PB10 = 0x1A,
PB11 = 0x1B,
PB12 = 0x1C,
PB13 = 0x1D,
PB14 = 0x1E,
PB15 = 0x1F,
PC0 = 0x20,
PC1 = 0x21,
PC2 = 0x22,
PC3 = 0x23,
PC4 = 0x24,
PC5 = 0x25,
PC6 = 0x26,
PC7 = 0x27,
PC8 = 0x28,
PC9 = 0x29,
PC10 = 0x2A,
PC11 = 0x2B,
PC12 = 0x2C,
PC13 = 0x2D,
PC14 = 0x2E,
PC15 = 0x2F,
PD0 = 0x30,
PD1 = 0x31,
PD2 = 0x32,
PD3 = 0x33,
PD4 = 0x34,
PD5 = 0x35,
PD6 = 0x36,
PD7 = 0x37,
PD8 = 0x38,
PD9 = 0x39,
PD10 = 0x3A,
PD11 = 0x3B,
PD12 = 0x3C,
PD13 = 0x3D,
PD14 = 0x3E,
PD15 = 0x3F,
PE0 = 0x40,
PE1 = 0x41,
PE2 = 0x42,
PE3 = 0x43,
PE4 = 0x44,
PE5 = 0x45,
PE6 = 0x46,
PE7 = 0x47,
PE8 = 0x48,
PE9 = 0x49,
PE10 = 0x4A,
PE11 = 0x4B,
PE12 = 0x4C,
PE13 = 0x4D,
PE14 = 0x4E,
PE15 = 0x4F,
PF0 = 0x50,
PF1 = 0x51,
PF2 = 0x52,
PF3 = 0x53,
PF4 = 0x54,
PF5 = 0x55,
PF6 = 0x56,
PF7 = 0x57,
PF8 = 0x58,
PF9 = 0x59,
PF10 = 0x5A,
PF11 = 0x5B,
PF12 = 0x5C,
PF13 = 0x5D,
PF14 = 0x5E,
PF15 = 0x5F,
PG0 = 0x60,
PG1 = 0x61,
PG2 = 0x62,
PG3 = 0x63,
PG4 = 0x64,
PG5 = 0x65,
PG6 = 0x66,
PG7 = 0x67,
PG8 = 0x68,
PG9 = 0x69,
PG10 = 0x6A,
PG11 = 0x6B,
PG12 = 0x6C,
PG13 = 0x6D,
PG14 = 0x6E,
PG15 = 0x6F,
PH0 = 0x70,
PH1 = 0x71,
PH2 = 0x72,
PH3 = 0x73,
PH4 = 0x74,
PH5 = 0x75,
PH6 = 0x76,
PH7 = 0x77,
PH8 = 0x78,
PH9 = 0x79,
PH10 = 0x7A,
PH11 = 0x7B,
PH12 = 0x7C,
PH13 = 0x7D,
PH14 = 0x7E,
PH15 = 0x7F
};
// 获取组和针脚
#define _PORT(PIN) (1 << ((PIN) & (uint16_t)0x0F))
#define _PIN(PIN) (PIN & 0x000F)
#define _PIN_NAME(pin) (pin==P0 ? '_' : ('A' + (pin >> 4))), (pin==P0 ? '0' : (pin & 0x0F))
/* 串口定义 */
enum COM
{
COM1 = 0,
COM2 = 1,
COM3 = 2,
COM4 = 3,
COM5 = 4,
COM6 = 5,
COM7 = 6,
COM8 = 7,
COM_NONE = 0xFF
};
enum SPI
{
Spi1 = 0,
Spi2 = 1,
Spi3 = 2
};
enum TIMER
{
Timer0 = 0xFF,
Timer1 = 0,
Timer2 = 1,
Timer3 = 2,
Timer4 = 3,
Timer5 = 4,
Timer6 = 5,
Timer7 = 6,
Timer8 = 7,
Timer9 = 8,
Timer10 = 9,
Timer11 = 10,
Timer12 = 11,
Timer13 = 12,
Timer14 = 13,
Timer15 = 14,
Timer16 = 15,
Timer17 = 16,
Timer18 = 17,
};
enum CAN
{
Can1 = 0,
Can2 = 1,
};
#endif