Compare commits

10 Commits

Author SHA1 Message Date
69ea6ccb57 add missig header lines 2022-10-15 07:34:29 +02:00
7a288faddb clean includes 2022-10-15 06:58:10 +02:00
962ef3878d add BlinkOuts 2022-10-15 06:55:57 +02:00
a39486c0fc merge edge detection and blink by nowka 2022-10-15 06:36:19 +02:00
e355efd233 fix indent 2022-10-15 06:28:49 +02:00
2ea6ec2e03 add atomics 2022-10-15 06:27:01 +02:00
e2f55b4284 fix whitespace 2022-10-15 05:18:14 +02:00
e9dae2fdee fix indent 2022-10-15 05:17:15 +02:00
Max Brüggemann
f473da9c3f Nr of IOs now settable using defines 2021-08-23 19:37:37 +02:00
Max Brüggemann
3828826957 Fix missing header guards 2021-08-22 00:24:44 +02:00
3 changed files with 2519 additions and 2302 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -3,13 +3,29 @@
#include <stdint.h>
extern volatile uint8_t outStates[4];
extern volatile uint8_t inStates[4];
extern volatile uint8_t ioHelperDebounceTable[32];
extern volatile uint8_t oldInstates[4];
extern volatile uint8_t inStatesBothEdges[4];
extern volatile uint8_t inStatesRisingEdge[4];
extern volatile uint8_t inStatesFallingEdge[4];
#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 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 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);
void ioHelperDebounce(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
//Pin | Bit in outStates

View File

@@ -1,92 +1,97 @@
import string
ddr="""#ifdef DDRA
DDRA|=0
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
DDRA|=0
#ifdef BitPA0
|(1<<0)
#endif
|(1<<0)
#endif
#ifdef BitPA1
|(1<<1)
#endif
|(1<<1)
#endif
#ifdef BitPA2
|(1<<2)
#endif
|(1<<2)
#endif
#ifdef BitPA3
|(1<<3)
#endif
|(1<<3)
#endif
#ifdef BitPA4
|(1<<4)
#endif
|(1<<4)
#endif
#ifdef BitPA5
|(1<<5)
#endif
|(1<<5)
#endif
#ifdef BitPA6
|(1<<6)
#endif
|(1<<6)
#endif
#ifdef BitPA7
|(1<<7)
#endif
|0;
|(1<<7)
#endif
|0;
}
#endif
"""
port="""
#ifdef PORTA
PORTA|=0
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
PORTA|=0
#ifdef BitPA0
|(getBit1(BitPA0)<<0)
|(getBit1(BitPA0)<<0)
#endif
#ifdef BitPA1
|(getBit1(BitPA1)<<1)
|(getBit1(BitPA1)<<1)
#endif
#ifdef BitPA2
|(getBit1(BitPA2)<<2)
|(getBit1(BitPA2)<<2)
#endif
#ifdef BitPA3
|(getBit1(BitPA3)<<3)
|(getBit1(BitPA3)<<3)
#endif
#ifdef BitPA4
|(getBit1(BitPA4)<<4)
|(getBit1(BitPA4)<<4)
#endif
#ifdef BitPA5
|(getBit1(BitPA5)<<5)
|(getBit1(BitPA5)<<5)
#endif
#ifdef BitPA6
|(getBit1(BitPA6)<<6)
|(getBit1(BitPA6)<<6)
#endif
#ifdef BitPA7
|(getBit1(BitPA7)<<7)
|(getBit1(BitPA7)<<7)
#endif
|0;
|0;
}
PORTA&=~(0
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
PORTA&=~(0
#ifdef BitPA0
|(getBit0(BitPA0)<<0)
|(getBit0(BitPA0)<<0)
#endif
#ifdef BitPA1
|(getBit0(BitPA1)<<1)
|(getBit0(BitPA1)<<1)
#endif
#ifdef BitPA2
|(getBit0(BitPA2)<<2)
|(getBit0(BitPA2)<<2)
#endif
#ifdef BitPA3
|(getBit0(BitPA3)<<3)
|(getBit0(BitPA3)<<3)
#endif
#ifdef BitPA4
|(getBit0(BitPA4)<<4)
|(getBit0(BitPA4)<<4)
#endif
#ifdef BitPA5
|(getBit0(BitPA5)<<5)
|(getBit0(BitPA5)<<5)
#endif
#ifdef BitPA6
|(getBit0(BitPA6)<<6)
|(getBit0(BitPA6)<<6)
#endif
#ifdef BitPA7
|(getBit0(BitPA7)<<7)
|(getBit0(BitPA7)<<7)
#endif
|0);
|0);
}
#endif
"""