Compare commits

..

10 Commits

File diff suppressed because it is too large Load Diff

@ -3,13 +3,29 @@
#include <stdint.h> #include <stdint.h>
extern volatile uint8_t outStates[4]; #define LEVEL 0
extern volatile uint8_t inStates[4]; #define EDGE 1
extern volatile uint8_t ioHelperDebounceTable[32]; #define RISING 2
extern volatile uint8_t oldInstates[4]; #define FALLING 3
extern volatile uint8_t inStatesBothEdges[4];
extern volatile uint8_t inStatesRisingEdge[4]; #define OFF 0
extern volatile uint8_t inStatesFallingEdge[4]; #define ON 1
#define BLINK 2
#define TOGGLE 3
#define nrOfOutputs 32 //must be multiple of 8
#define nrOfInputs 32 //must be multiple of 8
extern volatile uint8_t outStates[nrOfOutputs/8];
extern volatile uint8_t inStates[nrOfInputs/8];
extern volatile uint8_t ioHelperDebounceTable[nrOfInputs];
extern volatile uint8_t outStatesBlinking[nrOfOutputs/8];
extern volatile uint8_t inStatesBothEdges[nrOfInputs/8];
extern volatile uint8_t inStatesRisingEdge[nrOfInputs/8];
extern volatile uint8_t inStatesFallingEdge[nrOfInputs/8];
void ioHelperSetOuts(void); void ioHelperSetOuts(void);
void ioHelperReadPins(void); void ioHelperReadPins(void);
@ -18,6 +34,10 @@ void ioHelperSetBit(volatile uint8_t *list, uint8_t nr, uint8_t state);
unsigned char ioHelperReadBit(volatile uint8_t *list, uint8_t nr); unsigned char ioHelperReadBit(volatile uint8_t *list, uint8_t nr);
void ioHelperDebounce(void); void ioHelperDebounce(void);
void ioHelperEdgeDetector(void); void ioHelperEdgeDetector(void);
void ioHelperBlinkOuts(void);
uint8_t read_Input(uint8_t nr, uint8_t type);
void set_Output(uint8_t nr, uint8_t state);
//Outputs //Outputs
//Pin | Bit in outStates //Pin | Bit in outStates

@ -1,6 +1,7 @@
import string import string
ddr="""#ifdef DDRA ddr="""#ifdef DDRA
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
DDRA|=0 DDRA|=0
#ifdef BitPA0 #ifdef BitPA0
|(1<<0) |(1<<0)
@ -27,13 +28,14 @@ DDRA|=0
|(1<<7) |(1<<7)
#endif #endif
|0; |0;
}
#endif #endif
""" """
port=""" port="""
#ifdef PORTA #ifdef PORTA
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
PORTA|=0 PORTA|=0
#ifdef BitPA0 #ifdef BitPA0
|(getBit1(BitPA0)<<0) |(getBit1(BitPA0)<<0)
@ -60,7 +62,9 @@ PORTA|=0
|(getBit1(BitPA7)<<7) |(getBit1(BitPA7)<<7)
#endif #endif
|0; |0;
}
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
PORTA&=~(0 PORTA&=~(0
#ifdef BitPA0 #ifdef BitPA0
|(getBit0(BitPA0)<<0) |(getBit0(BitPA0)<<0)
@ -87,6 +91,7 @@ PORTA&=~(0
|(getBit0(BitPA7)<<7) |(getBit0(BitPA7)<<7)
#endif #endif
|0); |0);
}
#endif #endif
""" """

Loading…
Cancel
Save