35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
#pragma once
|
|
#include <avr/io.h>
|
|
#include <stdio.h>
|
|
|
|
extern FILE USBSerialStream;
|
|
|
|
#define SET_FUN_N(NAME, PORT, PIN) inline static void NAME(void) { PORT |= (1<<PIN); }
|
|
#define CLR_FUN_N(NAME, PORT, PIN) inline static void NAME(void) { PORT &= ~(1<<PIN); }
|
|
#define GET_FUN_N(NAME, PORT, PIN) inline static int NAME(void) { return !!(PORT & (1<<PIN)); }
|
|
|
|
#define PIN_FUN_N(NAME, PORT_NAME, PIN_NUM) \
|
|
SET_FUN_N(NAME##On, PORT##PORT_NAME, PIN_NUM) \
|
|
CLR_FUN_N(NAME##Off, PORT##PORT_NAME, PIN_NUM) \
|
|
GET_FUN_N(NAME##Pin, PIN##PORT_NAME, PIN_NUM) \
|
|
GET_FUN_N(NAME##Port, PORT##PORT_NAME, PIN_NUM)
|
|
|
|
#define SET_FUN_I(NAME, PORT, PIN) inline static void NAME(void) { PORT &= ~(1<<PIN); }
|
|
#define CLR_FUN_I(NAME, PORT, PIN) inline static void NAME(void) { PORT |= (1<<PIN); }
|
|
#define GET_FUN_I(NAME, PORT, PIN) inline static int NAME(void) { return !(PORT & (1<<PIN)); }
|
|
|
|
#define PIN_FUN_I(NAME, PORT_NAME, PIN_NUM) \
|
|
SET_FUN_I(NAME##On, PORT##PORT_NAME, PIN_NUM) \
|
|
CLR_FUN_I(NAME##Off, PORT##PORT_NAME, PIN_NUM) \
|
|
GET_FUN_I(NAME##Pin, PIN##PORT_NAME, PIN_NUM) \
|
|
GET_FUN_I(NAME##Port, PORT##PORT_NAME, PIN_NUM)
|
|
|
|
PIN_FUN_N(SysLed, B, 7)
|
|
PIN_FUN_N(PortAInd, D, 0)
|
|
PIN_FUN_N(PortBInd, D, 2)
|
|
PIN_FUN_N(PortAPow, D, 1)
|
|
PIN_FUN_N(PortBPow, D, 3)
|
|
PIN_FUN_I(OutEn, D, 4)
|
|
PIN_FUN_I(CtrlData, D, 5)
|
|
PIN_FUN_N(DutData, D, 5)
|