реклама на сайте
подробности

 
 
> сделать конвертацию бит с АЦП в температуру, по таблице
Метценгерштейн
сообщение Feb 6 2015, 15:32
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



немного торможу, как лучше?
т.е. получил с АЦП данные- 33.
я знаю, что по таблице это температура = 10.

как-то через ф-ю завернуть надо
Код
uint8_t convert_to_temp (uint8_t data)
{
    
}



если через дефайн, то

#define 33 10

Код
uint8_t convert_to_temp (uint8_t data)
{
    return 33;
}


надо как-то избавиться от цифр, а то не так поймут. Вот как?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Feb 8 2015, 10:04
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



АЦП 10 бит всего-то.
написал так:
Код
uint16_t mass_convert[121]= {20,21,22,23,25,26,27,28,30,31,33,35,36,38,40,42,44,46,48,50,52,54,57,59,62,65,6
8,71,74,77,80,83,87,90,94,98,102,106,110,114,118,123,
128,132,137,142,148,153,159,164,170,176,182,188,195,201,208,215,222,229,237,244,
252,260,268,276,284,293,302,310,319,329,338,347,357,367,377,387,397,407,418,428,
439,450,461,472,483,494,506,517,529,540,553,564,576,588,600,612,625,637,649,661,
673,685,697,709,721,733,745,758,770,782,795,808,821,833,847,860,873,887,900, };
    

uint8_t convert_to_temp (uint16_t data) // return celsius
{
    for (uint8_t i =0; i < 121; i++) // data = 24
    {
        if (data == mass_convert [i])
        {
            return i;
        }
        else if (data < mass_convert [i])
        {
            return (i-1);
        }
    }
    return 0;
}

данные в экселе посчитал и скопировал туда. Их не много.
Такой код нормальный?
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Feb 8 2015, 13:29
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Метценгерштейн @ Feb 8 2015, 05:04) *
АЦП 10 бит всего-то.
написал так:
Код
uint16_t mass_convert[121]= {...};
    

uint8_t convert_to_temp (uint16_t data) // return celsius
{
    for (uint8_t i =0; i < 121; i++) // data = 24
    {
    ...
        }
    return 0;
}

данные в экселе посчитал и скопировал туда. Их не много.
Такой код нормальный?


Вместо "121" в loop, лучше всегда пользовать sizeof(mass_convert)
так более нормально.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   сделать конвертацию бит с АЦП в температуру   Feb 6 2015, 15:32
- - Sergei_Ilchenko   Кто не так поймет?   Feb 6 2015, 15:34
- - Метценгерштейн   может где в коде еще цифры встретятся, он их возьм...   Feb 6 2015, 15:38
- - Sergei_Ilchenko   Через массив не экономично?   Feb 6 2015, 15:41
- - _pv   чтобы провести прямую надо, как известно, две точк...   Feb 6 2015, 15:42
- - Sergei_Ilchenko   Зависимость линейная или нет?   Feb 6 2015, 15:42
- - Метценгерштейн   точно! про него-то и не подумал) зависимость ...   Feb 6 2015, 15:42
|- - CrimsonPig   Цитата(Метценгерштейн @ Feb 6 2015, 15:42...   Feb 6 2015, 16:15
- - ViKo   Кодuint8_t convert_to_temp (uint8_t x) { ...   Feb 6 2015, 16:14
|- - _Pasha   Цитата(ViKo @ Feb 6 2015, 20:14) Кодuint8...   Feb 8 2015, 11:28
|- - Метценгерштейн   Цитата(A. Fig Lee @ Feb 8 2015, 16:29) Вм...   Feb 8 2015, 14:25
- - SM   А какой великий смысл в двух сравнениях? На == и н...   Feb 8 2015, 15:06
|- - Метценгерштейн   Цитата(SM @ Feb 8 2015, 18:06) А какой ве...   Feb 9 2015, 08:44
|- - SM   Цитата(Метценгерштейн @ Feb 9 2015, 11:44...   Feb 9 2015, 08:50
- - Метценгерштейн   да, так только если data = 24; при условии Код if...   Feb 9 2015, 12:37
|- - SM   Цитата(Метценгерштейн @ Feb 9 2015, 15:37...   Feb 9 2015, 12:49
- - ViKo   А что же не сделать линейную интерполяцию между яч...   Feb 9 2015, 12:55
|- - SM   Цитата(ViKo @ Feb 9 2015, 15:55) А что же...   Feb 9 2015, 12:58
- - Метценгерштейн   в задаче температура нужна с точностью 5 градусов.   Feb 9 2015, 13:32


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 05:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016