Skip to content

Commit ef96565

Browse files
committed
Simplify CNF mapper
1 parent 9eb832b commit ef96565

File tree

1 file changed

+34
-42
lines changed

1 file changed

+34
-42
lines changed

src/CAN.cpp

Lines changed: 34 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -100,59 +100,51 @@ int CANClass::begin(long baudRate, long clockRate)
100100
const struct {
101101
long clockRate;
102102
long baudRate;
103-
uint8_t cfg[3];
104-
} CFG_MAPPER[] = {
105-
{ (long)8E6, (long)1000E3, { 0x00, 0xc0, 0x80 } },
106-
{ (long)8E6, (long)500E3, { 0x00, 0xd1, 0x81 } },
107-
{ (long)8E6, (long)250E3, { 0x80, 0xe5, 0x83 } },
108-
{ (long)8E6, (long)200E3, { 0x80, 0xf6, 0x84 } },
109-
{ (long)8E6, (long)125E3, { 0x81, 0xe5, 0x83 } },
110-
{ (long)8E6, (long)100E3, { 0x81, 0xf6, 0x84 } },
111-
{ (long)8E6, (long)80E3, { 0x84, 0xd3, 0x81 } },
112-
{ (long)8E6, (long)50E3, { 0x84, 0xe5, 0x83 } },
113-
{ (long)8E6, (long)40E3, { 0x84, 0xf6, 0x84 } },
114-
{ (long)8E6, (long)20E3, { 0x89, 0xf6, 0x84 } },
115-
{ (long)8E6, (long)10E3, { 0x93, 0xf6, 0x84 } },
116-
{ (long)8E6, (long)5E3, { 0xa7, 0xf6, 0x84 } },
117-
{ (long)16E6, (long)1000E3, { 0x00, 0xca, 0x81 } },
118-
{ (long)16E6, (long)500E3, { 0x40, 0xe5, 0x83 } },
119-
{ (long)16E6, (long)250E3, { 0x41, 0xe5, 0x83 } },
120-
{ (long)16E6, (long)200E3, { 0x41, 0xf6, 0x84 } },
121-
{ (long)16E6, (long)125E3, { 0x43, 0xe5, 0x83 } },
122-
{ (long)16E6, (long)100E3, { 0x44, 0xe5, 0x83 } },
123-
{ (long)16E6, (long)80E3, { 0x44, 0xf6, 0x84 } },
124-
{ (long)16E6, (long)50E3, { 0x47, 0xf6, 0x84 } },
125-
{ (long)16E6, (long)40E3, { 0x49, 0xf6, 0x84 } },
126-
{ (long)16E6, (long)20E3, { 0x53, 0xe5, 0x84 } },
127-
{ (long)16E6, (long)10E3, { 0x67, 0xf6, 0x84 } },
103+
uint8_t cnf[3];
104+
} CNF_MAPPER[] = {
105+
{ (long)8E6, (long)1000E3, { 0x00, 0x80, 0x00 } },
106+
{ (long)8E6, (long)500E3, { 0x00, 0x90, 0x02 } },
107+
{ (long)8E6, (long)250E3, { 0x00, 0xb1, 0x05 } },
108+
{ (long)8E6, (long)200E3, { 0x00, 0xb4, 0x06 } },
109+
{ (long)8E6, (long)125E3, { 0x01, 0xb1, 0x05 } },
110+
{ (long)8E6, (long)100E3, { 0x01, 0xb4, 0x06 } },
111+
{ (long)8E6, (long)80E3, { 0x01, 0xbf, 0x07 } },
112+
{ (long)8E6, (long)50E3, { 0x03, 0xb4, 0x06 } },
113+
{ (long)8E6, (long)40E3, { 0x03, 0xbf, 0x07 } },
114+
{ (long)8E6, (long)20E3, { 0x07, 0xbf, 0x07 } },
115+
{ (long)8E6, (long)10E3, { 0x0f, 0xbf, 0x07 } },
116+
{ (long)8E6, (long)5E3, { 0x1f, 0xbf, 0x07 } },
117+
118+
{ (long)16E6, (long)1000E3, { 0x00, 0xd0, 0x82 } },
119+
{ (long)16E6, (long)500E3, { 0x00, 0xf0, 0x86 } },
120+
{ (long)16E6, (long)250E3, { 0x41, 0xf1, 0x85 } },
121+
{ (long)16E6, (long)200E3, { 0x01, 0xfa, 0x87 } },
122+
{ (long)16E6, (long)125E3, { 0x03, 0xf0, 0x86 } },
123+
{ (long)16E6, (long)100E3, { 0x03, 0xfa, 0x87 } },
124+
{ (long)16E6, (long)80E3, { 0x03, 0xff, 0x87 } },
125+
{ (long)16E6, (long)50E3, { 0x07, 0xfa, 0x87 } },
126+
{ (long)16E6, (long)40E3, { 0x07, 0xff, 0x87 } },
127+
{ (long)16E6, (long)20E3, { 0x0f, 0xff, 0x87 } },
128+
{ (long)16E6, (long)10E3, { 0x1f, 0xff, 0x87 } },
128129
{ (long)16E6, (long)5E3, { 0x3f, 0xff, 0x87 } },
129-
{ (long)20E6, (long)1000E3, { 0x00, 0xd9, 0x82 } },
130-
{ (long)20E6, (long)500E3, { 0x40, 0xe5, 0x83 } },
131-
{ (long)20E6, (long)250E3, { 0x41, 0xf6, 0x84 } },
132-
{ (long)20E6, (long)200E3, { 0x44, 0xd3, 0x81 } },
133-
{ (long)20E6, (long)125E3, { 0x44, 0xe5, 0x83 } },
134-
{ (long)20E6, (long)100E3, { 0x44, 0xf6, 0x84 } },
135-
{ (long)20E6, (long)80E3, { 0xc4, 0xff, 0x87 } },
136-
{ (long)20E6, (long)50E3, { 0x49, 0xf6, 0x84 } },
137-
{ (long)20E6, (long)40E3, { 0x18, 0xd3, 0x81 } },
138130
};
139131

140-
const uint8_t* cfg = NULL;
132+
const uint8_t* cnf = NULL;
141133

142-
for (unsigned int i = 0; i < (sizeof(CFG_MAPPER) / sizeof(CFG_MAPPER[0])); i++) {
143-
if (CFG_MAPPER[i].clockRate == clockRate && CFG_MAPPER[i].baudRate == baudRate) {
144-
cfg = CFG_MAPPER[i].cfg;
134+
for (unsigned int i = 0; i < (sizeof(CNF_MAPPER) / sizeof(CNF_MAPPER[0])); i++) {
135+
if (CNF_MAPPER[i].clockRate == clockRate && CNF_MAPPER[i].baudRate == baudRate) {
136+
cnf = CNF_MAPPER[i].cnf;
145137
break;
146138
}
147139
}
148140

149-
if (cfg == NULL) {
141+
if (cnf == NULL) {
150142
return 0;
151143
}
152144

153-
writeRegister(REG_CNF1, cfg[0]);
154-
writeRegister(REG_CNF2, cfg[1]);
155-
writeRegister(REG_CNF3, cfg[2]);
145+
writeRegister(REG_CNF1, cnf[0]);
146+
writeRegister(REG_CNF2, cnf[1]);
147+
writeRegister(REG_CNF3, cnf[2]);
156148

157149
writeRegister(REG_CANINTE, FLAG_RXnIE(1) | FLAG_RXnIE(0));
158150
writeRegister(REG_BFPCTRL, 0x00);

0 commit comments

Comments
 (0)