add io helper lib
parent
e2a9d85b76
commit
979856fd12
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,96 @@
|
||||
#ifndef _IO_HELPER_
|
||||
#define _IO_HELPER_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define LEVEL 0
|
||||
#define EDGE 1
|
||||
#define RISING 2
|
||||
#define FALLING 3
|
||||
|
||||
#define OFF 0
|
||||
#define ON 1
|
||||
#define BLINK 2
|
||||
#define TOGGLE 3
|
||||
|
||||
|
||||
#define NUMBER_OF_INPUT_BYTES 2
|
||||
|
||||
extern volatile uint8_t outStates[NUMBER_OF_INPUT_BYTES];
|
||||
extern volatile uint8_t outStatesBlinking[NUMBER_OF_INPUT_BYTES];
|
||||
extern volatile uint8_t inStates[NUMBER_OF_INPUT_BYTES];
|
||||
extern volatile uint8_t inStatesRaw[NUMBER_OF_INPUT_BYTES];
|
||||
extern volatile uint8_t ioHelperDebounceTable[NUMBER_OF_INPUT_BYTES*8];
|
||||
extern volatile uint8_t oldInstates[NUMBER_OF_INPUT_BYTES];
|
||||
extern volatile uint8_t inStatesBothEdges[NUMBER_OF_INPUT_BYTES];
|
||||
extern volatile uint8_t inStatesRisingEdge[NUMBER_OF_INPUT_BYTES];
|
||||
extern volatile uint8_t inStatesFallingEdge[NUMBER_OF_INPUT_BYTES];
|
||||
|
||||
|
||||
uint8_t read_Input(uint8_t nr, uint8_t type);
|
||||
void set_Output(uint8_t nr, uint8_t state);
|
||||
|
||||
void ioHelperInitBuffer(void);
|
||||
void ioHelperSetOuts(void);
|
||||
void ioHelperReadPins(void);
|
||||
void ioHelperIoConf(void);
|
||||
void ioHelperSetBit(volatile uint8_t *list, uint8_t nr, uint8_t state);
|
||||
unsigned char ioHelperReadBit(volatile uint8_t *list, uint8_t nr);
|
||||
void ioHelperDebounce(void);
|
||||
void ioHelperEdgeDetector(void);
|
||||
|
||||
//Outputs
|
||||
//Verknüpfen von Pin | Bit mit Bitposition (0...n) outStates[0...n/8].
|
||||
#define BitPE4 0 //D0
|
||||
#define BitPE5 1 //D1
|
||||
#define BitPG5 2 //D2
|
||||
#define BitPE3 3 //D3
|
||||
#define BitPH3 4 //D4
|
||||
#define BitPH4 5 //D5
|
||||
#define BitPH5 6 //D6
|
||||
#define BitPH6 7 //D7
|
||||
|
||||
#define BitPB4 8 //D8
|
||||
#define BitPB5 9 //D9
|
||||
#define BitPB6 10 //D10
|
||||
#define BitPB7 11 //D11
|
||||
|
||||
#define LED_ROT_NOTAUS_SCHRANK BitPG5
|
||||
#define LED_GRN_NOTAUS_SCHRANK BitPE3
|
||||
#define LED_ROT_NOTAUS_ANLAGE BitPH3
|
||||
#define LED_GRN_NOTAUS_ANLAGE BitPH4
|
||||
#define LED_PLC_OK BitPB5
|
||||
#define LED_BUS_OK BitPB6
|
||||
#define LED_ZUMBACH BitPH5
|
||||
#define LED_LUEFTER BitPH6
|
||||
#define SCHUETZ_ZUMBACH BitPE5
|
||||
|
||||
|
||||
//Inputs
|
||||
//Verknüpfen von Pin | Bit mit Bitposition (0...n) inStates[0...n/8].
|
||||
#define BitPinF0 0 //A0
|
||||
#define BitPinF1 1 //A1
|
||||
#define BitPinF2 2 //A2
|
||||
#define BitPinF3 3 //A3
|
||||
#define BitPinF4 4 //A4
|
||||
#define BitPinF5 5 //A5
|
||||
#define BitPinF6 6 //A6
|
||||
#define BitPinF7 7 //A7
|
||||
|
||||
#define BitPinK0 8 //A8
|
||||
#define BitPinK1 9 //A9
|
||||
#define BitPinD3 10 //INO
|
||||
#define BitPinD2 11 //IN1
|
||||
|
||||
#define BTN_ZUMBACH_EIN BitPinF2
|
||||
#define BTN_ZUMBACH_AUS BitPinF3
|
||||
#define BTN_LUEFTER_EIN BitPinF4
|
||||
#define BTN_LUEFTER_AUS BitPinF5
|
||||
#define BTN_LUEFTER_PLUS BitPinF6
|
||||
#define BTN_LUEFTER_MINUS BitPinF7
|
||||
#define BTN_ANLAGE_EIN BitPinD3
|
||||
#define IN_ANLAGE_EIN BitPinD2
|
||||
#define IN_NOTAUS_ANLAGE BitPinF0
|
||||
#define IN_NOTAUS_SCHRANK BitPinF1
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,155 @@
|
||||
import string
|
||||
|
||||
ddr="""#ifdef DDRA
|
||||
DDRA|=0
|
||||
#ifdef BitPA0
|
||||
|(1<<0)
|
||||
#endif
|
||||
#ifdef BitPA1
|
||||
|(1<<1)
|
||||
#endif
|
||||
#ifdef BitPA2
|
||||
|(1<<2)
|
||||
#endif
|
||||
#ifdef BitPA3
|
||||
|(1<<3)
|
||||
#endif
|
||||
#ifdef BitPA4
|
||||
|(1<<4)
|
||||
#endif
|
||||
#ifdef BitPA5
|
||||
|(1<<5)
|
||||
#endif
|
||||
#ifdef BitPA6
|
||||
|(1<<6)
|
||||
#endif
|
||||
#ifdef BitPA7
|
||||
|(1<<7)
|
||||
#endif
|
||||
|0;
|
||||
|
||||
#endif
|
||||
|
||||
"""
|
||||
|
||||
port="""
|
||||
#ifdef PORTA
|
||||
PORTA|=0
|
||||
#ifdef BitPA0
|
||||
|(getBit1(BitPA0)<<0)
|
||||
#endif
|
||||
#ifdef BitPA1
|
||||
|(getBit1(BitPA1)<<1)
|
||||
#endif
|
||||
#ifdef BitPA2
|
||||
|(getBit1(BitPA2)<<2)
|
||||
#endif
|
||||
#ifdef BitPA3
|
||||
|(getBit1(BitPA3)<<3)
|
||||
#endif
|
||||
#ifdef BitPA4
|
||||
|(getBit1(BitPA4)<<4)
|
||||
#endif
|
||||
#ifdef BitPA5
|
||||
|(getBit1(BitPA5)<<5)
|
||||
#endif
|
||||
#ifdef BitPA6
|
||||
|(getBit1(BitPA6)<<6)
|
||||
#endif
|
||||
#ifdef BitPA7
|
||||
|(getBit1(BitPA7)<<7)
|
||||
#endif
|
||||
|0;
|
||||
|
||||
PORTA&=~(0
|
||||
#ifdef BitPA0
|
||||
|(getBit0(BitPA0)<<0)
|
||||
#endif
|
||||
#ifdef BitPA1
|
||||
|(getBit0(BitPA1)<<1)
|
||||
#endif
|
||||
#ifdef BitPA2
|
||||
|(getBit0(BitPA2)<<2)
|
||||
#endif
|
||||
#ifdef BitPA3
|
||||
|(getBit0(BitPA3)<<3)
|
||||
#endif
|
||||
#ifdef BitPA4
|
||||
|(getBit0(BitPA4)<<4)
|
||||
#endif
|
||||
#ifdef BitPA5
|
||||
|(getBit0(BitPA5)<<5)
|
||||
#endif
|
||||
#ifdef BitPA6
|
||||
|(getBit0(BitPA6)<<6)
|
||||
#endif
|
||||
#ifdef BitPA7
|
||||
|(getBit0(BitPA7)<<7)
|
||||
#endif
|
||||
|0);
|
||||
#endif
|
||||
|
||||
"""
|
||||
|
||||
pin="""
|
||||
#ifdef PINA
|
||||
#ifdef BitPinA0
|
||||
ioHelperCpBit(PINA,0,BitPinA0);
|
||||
#endif
|
||||
#ifdef BitPinA1
|
||||
ioHelperCpBit(PINA,1,BitPinA1);
|
||||
#endif
|
||||
#ifdef BitPinA2
|
||||
ioHelperCpBit(PINA,2,BitPinA2);
|
||||
#endif
|
||||
#ifdef BitPinA3
|
||||
ioHelperCpBit(PINA,3,BitPinA3);
|
||||
#endif
|
||||
#ifdef BitPinA4
|
||||
ioHelperCpBit(PINA,4,BitPinA4);
|
||||
#endif
|
||||
#ifdef BitPinA5
|
||||
ioHelperCpBit(PINA,5,BitPinA5);
|
||||
#endif
|
||||
#ifdef BitPinA6
|
||||
ioHelperCpBit(PINA,6,BitPinA6);
|
||||
#endif
|
||||
#ifdef BitPinA7
|
||||
ioHelperCpBit(PINA,7,BitPinA7);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
"""
|
||||
|
||||
port_letters=list(string.ascii_uppercase);
|
||||
|
||||
allddr=[]
|
||||
for x in range(0,len(port_letters)):
|
||||
allddr.append(ddr)
|
||||
allddr[x]=allddr[x].replace("DDRA","DDR"+port_letters[x])
|
||||
allddr[x]=allddr[x].replace("BitPA","BitP"+port_letters[x])
|
||||
|
||||
allport=[]
|
||||
for x in range(0,len(port_letters)):
|
||||
allport.append(port)
|
||||
allport[x]=allport[x].replace("PORTA","PORT"+port_letters[x])
|
||||
allport[x]=allport[x].replace("BitPA","BitP"+port_letters[x])
|
||||
|
||||
allpin=[]
|
||||
for x in range(0,len(port_letters)):
|
||||
allpin.append(pin)
|
||||
allpin[x]=allpin[x].replace("PINA","PIN"+port_letters[x])
|
||||
allpin[x]=allpin[x].replace("BitPinA","BitPin"+port_letters[x])
|
||||
|
||||
|
||||
for x in allddr:
|
||||
#print(x)
|
||||
pass
|
||||
|
||||
for x in allport:
|
||||
#print(x)
|
||||
pass
|
||||
|
||||
for x in allpin:
|
||||
print(x)
|
||||
pass
|
||||
Reference in New Issue