Jugger1978 0 13 февраля, 2017 Опубликовано 13 февраля, 2017 · Жалоба Здравствуйте. Прошу помощи. Я новичок и немного не понимаю как получить температуру в цельсиях. Имеется: PIC32MX130F256D Внутри имеется температурный сенсор. В документации к ADC (AD1CSSL) написано следующее: CSSL13 selects CTMU input for scan; Код следующий: AD1CON1CLR = _AD1CON1_ON_MASK ; AD1CSSL = 1<<13; AD1CON1 = (1 << _AD1CON1_ADON_POSITION) | (0x00 << _AD1CON1_FORM_POSITION) |(7 << _AD1CON1_SSRC_POSITION) ; AD1CON1bits.ADON = 1; AD1CON1bits.SAMP = 1; while(!AD1CON1bits.DONE) ; uint32_t ret= ADC1BUF0; После запуска на контроллере в ret находится число 0x000003A6 (934). Вопрос в том как это число привести к градусам. Перерыл кучу документации, ответа так и не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Redguy 0 13 февраля, 2017 Опубликовано 13 февраля, 2017 · Жалоба Добрый вечер, я особо не в курсе, но немного знаком с PIC32. Вопрос в том как это число привести к градусам. Перерыл кучу документации, ответа так и не нашел. Здесь читали? Я посмотрел бегло, там есть формула зависимости напряжения от температуры. Напряжение исходя из настроек АЦП получить можно, остальное либо константы, либо настраивается. Точной формулы нет и не будет, написано, что зависит от настроек источника тока, как от параметра, поэтому у каждой настройки своя уникальная формула пересчета. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться