ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
732527 Топик полностью
Ксения (30.01.2017 22:07, просмотров: 287) ответил Adept на немного торможу с XMEGA (нужно снять данные со встроенного температурного датчика)
Я работала - у меня так:  ADCB.CALL = ReadSignatureByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL0) ); ADCB.CALH = ReadSignatureByte( offsetof(NVM_PROD_SIGNATURES_t, ADCBCAL1) ); ADCB.CTRLB = ADC_RESOLUTION_12BIT_gc; // 12 bit conversion ADCB.PRESCALER = ADC_PRESCALER_DIV256_gc; // peripheral clk/256 (32MHz/256=125KHz) ADCB.REFCTRL = ADC_REFSEL_INT1V_gc; // internal 1V reference ADCB.CH0.CTRL = ADC_CH_INPUTMODE_INTERNAL_gc | ADC_CH_GAIN_1X_gc; ADCB.CH0.MUXCTRL = ADC_CH_MUXINT_TEMP_gc; // Internal Temp Sensor unsigned int reff = ReadSignatureByte( offsetof(NVM_PROD_SIGNATURES_t, TEMPSENSE0)) + (ReadSignatureByte( offsetof(NVM_PROD_SIGNATURES_t, TEMPSENSE1)) << 8); Start: ADCB.REFCTRL |= ADC_TEMPREF_bm; // Temp Sensor enable ADCB.CTRLA |= ADC_ENABLE_bm; // enable adc ADCB.CTRLA |= ADC_CH0START_bm; // start conversion <Pause> Температура = (ADCB.CH0.RES * (273 + 85) / reff) - 273;