void setup(void) { // initialize bitlash and set primary serial port baud // print startup banner and run the startup macro initBitlash(57600); // you can execute commands here to set up initial state // bear in mind these execute after the startup macro // doCommand("print(1+1)"); }
void setup() { // read the cause of the reset mcusr=MCUSR; MCUSR=0; pinMode(STATUS_LED, OUTPUT); pinMode(FAULT_LED, OUTPUT); digitalWrite(FAULT_LED, HIGH); digitalWrite(STATUS_LED, LOW); delay(500); initBitlash(115200); // must be first to initialize serial port //start serial Serial.begin(115200); check_reset_cause(); Serial.print(F("------------ Setup start - ")); Serial.print(freeMemory()); Serial.println(F("Ko ------------")); list_debug(); list_lib_version(); /* memory allocation in function of the config stored in eeprom */ Serial.println(F("---------- memory allocation -----------")); if (NumberOfBoardIn8R8) IN8R8 = (In8R8*) malloc((NumberOfBoardIn8R8)*sizeof(In8R8)); Serial.print(F("Create IN8R8: ")); Serial.println(NumberOfBoardIn8R8); if (NumberOfBoardIn16) IN16 = (Input16*) malloc((NumberOfBoardIn16)*sizeof(Input16)); Serial.print(F("Create IN16: ")); Serial.println(NumberOfBoardIn16); if (NumberOfBoardR8) R8 = (Relay8*) malloc((NumberOfBoardR8)*sizeof(Relay8)); Serial.print(F("Create R8: ")); Serial.println(NumberOfBoardR8); if (NumberOfBoardIn4Dimmer4) IN4DIM4 = (In4Dimmer4*) malloc((NumberOfBoardIn4Dimmer4)*sizeof(In4Dimmer4)); Serial.print(F("Create IN4DIM4 :")); Serial.println(NumberOfBoardIn4Dimmer4); if (NumberOfSwitch) SWITCH = (Switch*) malloc((NumberOfSwitch)*sizeof(Switch)); Serial.print(F("Create SWITCH:")); Serial.println(NumberOfSwitch); if (NumberOfShutter) SHUTTER = (Shutter*) malloc((NumberOfShutter)*sizeof(Shutter)); Serial.print(F("Create SHUTTER:")); Serial.println(NumberOfShutter); // create the instances of Lighting if (NumberOfLighting) LIGHTING = (Lighting*) malloc((NumberOfLighting)*sizeof(Lighting)); Serial.print(F("Create LIGHTING:")); Serial.println(NumberOfLighting); // create the instances of Temperature if (NumberOfTemp) TEMPERATURE = (Temperature*) malloc((NumberOfTemp)*sizeof(Temperature)); Serial.print(F("Create Temperature:")); Serial.println(NumberOfTemp); // create the instances of RF Device if (NumberOfRFDevice) RFDEVICE = (RFDevice*) malloc((NumberOfRFDevice)*sizeof(RFDevice)); Serial.print(F("Create RFDevice: ")); Serial.println(NumberOfRFDevice); pinMode(int_i2c,INPUT); // configure the pin of the i2c interrupt signal as input digitalWrite(int_i2c, HIGH); // active the internal pull-up setup_Udp(); // start Ethernet clock_setup(); // start pulse generator Serial.println(F("------------ setup i2c ------------")); Wire.begin(); // start i2c I2c16.begin() ; // start i2c I2c16.timeOut(1000); /// à valider, permet de ne pas rester bloquer par une operation i2c Serial.println(F("---------- setup i2c end -----------")); setup_bitlash(); // setup bitlash if(NumberOfTemp>0){ Serial.println(F("------------ setup DS2482 ------------")); DS2482_Init(); //initialize the DS2482 for OneWire Serial.println(F("---------- setup DS2482 end -----------")); delay(100); } if(NumberOfRFDevice>0){ Serial.println(F("------------ setup RF module ------------")); Setup_RF(); Serial.println(F("---------- setup RF module end -----------")); } /* configuration des cartes */ /// futurement sur lecture de l'eeprom config_board(); // cf custom.ino init_instance(); // cf custom.ino //~ Serial.println(F("---------- shutter initializ -----------")); /// initialise les volets au démarrage (devrait être optionnel, par config) => desormais on relit l'epprom //~ if(NumberOfShutter){ //~ for(int i=0; i<NumberOfShutter; i++){ //~ SHUTTER[i].reset(); //~ } //~ } digitalWrite(FAULT_LED, LOW); digitalWrite(STATUS_LED, HIGH); Serial.print(F("------------ Setup end - ")); Serial.print(freeMemory()); Serial.println(F("Ko ------------")); main_period_prev_millis=millis(); main_prev_millis=millis(); other_prev_millis=millis(); }