void sns_inputAnalog_Init(void) { #ifdef sns_inputAnalog_USEEEPROM if (EEDATA_OK) { /* Use stored data to set initial values for the module */ for (uint8_t i=0; i<sns_inputAnalog_NUM_SUPPORTED; i++) { //eeprom_write_block( &sns_inputAnalog_Config[i], &eeprom_sns_inputAnalog, sizeof(sns_inputAnalog_Config)*i ); eeprom_read_block( &sns_inputAnalog_Config[i], &eeprom_sns_inputAnalog+sizeof(sns_inputAnalog_Config)*i, sizeof(sns_inputAnalog_Config) ); } } else { /* The CRC of the EEPROM is not correct, store default values and update CRC */ for (uint8_t i=0; i<sns_inputAnalog_NUM_SUPPORTED; i++) { sns_inputAnalog_Config[i].LowTh=50; //Config, low level threshold voltage sns_inputAnalog_Config[i].HighTh=100; //Config, high level threshold voltage sns_inputAnalog_Config[i].Periodicity=5000+i*100; //Config, periodicity sns_inputAnalog_Config[i].Type=CAN_MODULE_ENUM_INPUTANALOG_ANALOGCONFIG_SETTING_PERIODICMEASURE; //Config, if sensor is of type periodic or digital input sns_inputAnalog_Config[i].PullupEnable=CAN_MODULE_ENUM_INPUTANALOG_ANALOGCONFIG_PULLUP_DISABLE; //Config, if the pullup should be enabled sns_inputAnalog_Config[i].RefEnable=CAN_MODULE_ENUM_INPUTANALOG_ANALOGCONFIG_REFERENCE_DISABLE; //Config, if the reference to GND should be enabled #if ((__AVR_LIBC_MAJOR__ == 1 && __AVR_LIBC_MINOR__ == 6 && __AVR_LIBC_REVISION__ >= 7)||(__AVR_LIBC_MAJOR__ == 1 && __AVR_LIBC_MINOR__ > 6)||__AVR_LIBC_MAJOR__ > 1) eeprom_update_block( &sns_inputAnalog_Config[i], &eeprom_sns_inputAnalog+sizeof(sns_inputAnalog_Config)*i, sizeof(sns_inputAnalog_Config) ); #else eeprom_write_block( &sns_inputAnalog_Config[i], &eeprom_sns_inputAnalog+sizeof(sns_inputAnalog_Config)*i, sizeof(sns_inputAnalog_Config) ); #warning Using old version of AVRlibc, does not support eeprom_update-functions #endif } EEDATA_UPDATE_CRC; } #endif #if sns_inputAnalog_ENABLE_PCA95xx==1 Pca95xx_Init(0); #endif /* Initiate ADC */ ADC_Init(); /* Start timer for reading inputs */ Timer_SetTimeout(sns_inputAnalog_TIMER, sns_inputAnalog_POLL_PERIOD_MS , TimerTypeFreeRunning, 0); /* Set pullups according config */ setPullups(); /* Set gnd references according config */ setReferences(); }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- MimeDataWithReferences::MimeDataWithReferences(const MimeDataWithReferences& other) : QMimeData() { setReferences(other.references()); }