#include ; #include ; #include "MeyCan.h"; #include "MeyRule.h"; struct can_frame incomingCanFrame; void setup() { SPI.begin(); AddToggleInverse(0x051F, 5, 0x3D2D, 4); // Lichtschalter Wohnzimmer Licht 1 AddToggleInverse(0x051F, 5, 0x3D2D, 3); // Lichtschalter Wohnzimmer Licht 2 AddToggle(0x05df, 1, 0x3D2D, 4); // Licht 1 von Terassenschalter AddToggle(0x05df, 1, 0x3D2D, 3); // Licht 2 von Terassenschalter AddToggle(0x0769, 1, 0x3D2D, 6); // Eingangstür Flur Licht 2 AddToggle(0x0769, 1, 0x9829, 1); //Eingangstür Flur Licht 1 AddSimple(0x051F, 3, 0x3D2D, 1); // Licht 1 Wochzimmer Eingangstür AddSimple(0x051F, 4, 0x3D2D, 2); // Licht 2 Wochzimmer Eingangstür AddToggle(0x1177, 1, 0x3D2D, 7); // Licht Papa Büro AddToggle(0x05A1, 1, 0x3D2D, 6); // Flurlicht von Papas Büro AddToggle(0x05A1, 1, 0x9829, 1); // Flurlicht von Papas Büro AddToggle(0x01EF, 1, 0x3D2D, 6); // Flurlicht von Papas Büro AddToggle(0x01EF, 1, 0x9829, 1); // Flurlicht von Papas Büro AddToggle(0x0196, 3, 0x3D2D, 6); // Flurlicht von Papas Büro AddToggle(0x0196, 3, 0x9829, 1); // Flurlicht von Papas Büro AddToggle(0x0632, 1, 0x9829, 5); // Flurlicht von Papas Büro _PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL.MCLKCTRLA | 1 << 7); delay(10); // a bit delay for mcp2515 to get the clock SetMeyPin(0, 1, PIN_PC7); SetMeyPin(1, 2, PIN_PC6); SetMeyPin(2, 3, PIN_PC5); SetMeyPin(3, 4, PIN_PC4); SetMeyPin(4, 5, PIN_PC3); SetMeyPin(5, 6, PIN_PC2); SetMeyPin(6, 7, PIN_PC1); SetMeyPin(7, 8, PIN_PC0); AddCanInterface(PIN_PA2); AddCanInterface(PIN_PA3); AddCanInterface(PIN_PB0); AddCanInterface(PIN_PB1); SetupMeyCan(); } void loop() { ForEachCanInterface(CheckCanInterface); } void CheckCanInterface(MCP2515 *interface) { if (interface->readMessage(&incomingCanFrame) == MCP2515::ERROR_OK) { HandleFrame(&incomingCanFrame, interface); } }