CANTram Framework 1.0.1
Dieses Framework ermöglicht die Nutzung der CANTram Hardware, einer Mikrocontroller basierten mdoularen Steuerung.
Loading...
Searching...
No Matches
ISO1I813T.h
1#ifndef ISO1I813T_H
2#define ISO1I813T_H
3#include <Arduino.h>
4#include "ISO1I813T_registers.h"
5#include <SPI.h>
6#include "SPIChip.h"
7#include "Debug.h"
8
9
10
11class ISO1I813T : public SPIChip
12{
13 public:
14 enum ISO1I813T_Filter{
15 US_50,
16 US_100,
17 US_400,
18 US_800,
19 US_1600,
20 US_3200,
21 US_10000,
22 US_20000,
23 FILTER_OFF
24 };
25
26 enum ERROR_CODES{
27 STATUS_OK = 0,
28 INVALID_CHANNEL = 10,
29 INVALID_FILTER = 11,
30 WIRE_BREAK_SETTING_ERROR = 30
31
32 };
33
34 struct Diag
35 {
36 uint8_t glErr: 8; // GL error
37 uint8_t intErr: 8; // Interrupt error
38 };
39
40 struct Data
41 {
42 uint8_t inputs: 8; // Inputs
43 uint8_t wireBreaks: 8; // Wire breaks
44 };
45 uint8_t daisyChain = 1; //number of devices in daisy chain, default 1, zero means no daisy chain support
46 ISO1I813T()=default;
47 ISO1I813T(uint8_t csPin, uint8_t syncPin);
48 void writeRegister(uint8_t address,uint8_t data);
49 uint8_t readRegister(uint8_t address);
50 void setPins(uint8_t csPin, uint8_t syncPin=-1);
51 void begin();
52
53 uint8_t getInputs() { return _inputs; }
54 bool getInput(uint8_t input) { return (_inputs & (1 << input)) != 0; }
55
56 Data fetchData();
57 Diag fetchDiagnose();
58 uint8_t getWireBreaks() { return _wireBreaks; }
59 bool getWireBreak(uint8_t wireBreak) { return (_wireBreaks & (1 << wireBreak)) != 0; }
60
61 uint8_t setFilter(uint8_t channel, ISO1I813T_Filter filter);
62 uint8_t setWireBreakMask(uint8_t channel, bool enable);
63
64 void freeze(bool status) {digitalWrite(_syncPin, (status && useSync) ? LOW : HIGH);}
65
66
67
68 private:
69 uint8_t _syncPin;
70 SPISettings _spiSettings = SPISettings(1000000, MSBFIRST, SPI_MODE0);
71 void _setSPISettings(uint32_t speed,uint8_t bitOrder, uint8_t dataMode);
72 uint8_t _inputs;
73 uint8_t _wireBreaks;
74 bool useSync = false;
75};
76
77
78#endif
Logging and debug macro definitions for CANTramCore.
Definition ISO1I813T.h:41
Definition ISO1I813T.h:35