Форум программистов, компьютерный форум, киберфорум
Наши страницы
Arduino
Войти
Регистрация
Восстановить пароль
 
Nikish_911
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 4
1

Сохранить и прочитать из памяти переменную типа word

19.06.2017, 20:49. Просмотров 453. Ответов 1
Метки нет (Все метки)

имеется программа которая читает показания с датчиков и сохраняет их в память а при получении запроса передает их блоку связи. но есть одна переменная которая не помещается в байт и нужно ее как-то разбить, записать а потом успешно прочитать и передать. кину куски кода. ps. да, я знаю что можно сократить количество строк но нужен объем кода)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
char t = 0;
char p = 0;
byte h = 0;
word d = 0;
========
if (adr == 1021)//
    {
      adr = 0
      goto del;
    } 
    t = round(dht.readTemperature()); 
    EEPROM.write(adr, t); 
    h = round(dht.readHumidity()); 
    EEPROM.write(adr + 1, h); 
    s = round(digitalRead(8)/10);
    EEPROM.write(adr + 2, s);
    d = round(bmp.readPressure()/10);
    ?????
    if (Serial.available() > 0)
==================
 for (int n = 0; n < 1021; n++)
      {
        Serial.println(EEPROM.read(n));
        Serial.println(EEPROM.read(n+1));
        Serial.println(EEPROM.read(n+2));
        ?????????????
 
        if (EEPROM.read(n+3) == 0)
          break;     
        }
Добавлено через 1 час 12 минут
Собственно отвечаю сам себе на вопрос:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
char t = 0;
char p = 0;
byte h = 0;
word d = 0;
long long_d = 0;
byte s = 0;
byte low = 0;
byte hi= 0;
=============
if (adr == 1021)
    {
      adr = 0;
      goto del;
    } 
    t = round(dht.readTemperature());  
    EEPROM.write(adr, t); 
    h = round(dht.readHumidity());   
    EEPROM.write(adr + 1, h); 
    s = round(digitalRead(8)/10);
    EEPROM.write(adr + 2, s); 
    d = round(bmp.readPressure()/10);
    hi = highByte(d);
    low = lowByte(d); 
    EEPROM.write(adr + 3, hi);
    EEPROM.write(adr + 4, low);//
    adr==adr+5
================
Serial.println(EEPROM.read(n));
        Serial.println(EEPROM.read(n+1));
        Serial.println(EEPROM.read(n+2));
        hi = (EEPROM.read(n+3));
        low = (EEPROM.read(n+4));        
        long_d = word(hi,low);
        long_d = long_d*10;
        Serial.println(long_d);
 
        if (long_d == 0)
          break;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2017, 20:49
Ответы с готовыми решениями:

Сохранить переменную в памяти
Как через php, можно сохранить переменную в апперативной памяти сервера?

В переменную типа integer прочитать число длиною в 4 байта
Добрый день. Кто чем может, помогите разобраться. Решил разобраться с изображениями (пока формат...

Сохранить в памяти переменную из временной формы
Привет всем! Чувствую себя лузером, поэтому прошу помочь! В программе, которую пишу, есть 2...

Можно ли сохранить переменную ссылочного типа в JSON?
Допустим у меня есть класс, который я сериализую в формат JSON. Все изменения с переменными этого...

Как сохранить нажатую клавишу в переменную типа char?
Как сохранить нажатую клавишу в переменную типа char?

1
Рыжий Лис
Просто Лис
1545 / 786 / 456
Регистрация: 17.05.2012
Сообщений: 2,919
Записей в блоге: 8
24.06.2017, 06:47 2
Документация говорит создавать структуру и писать/читать объекты.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2017, 06:47

Размер памяти, выделяемый под переменную комбинированного типа
1)type Complex=record Re, Im:real end; M=array of Complex; var a:M; ...

Как скопировать участок памяти в переменную типа Variant?
Стоит ли игра свеч? Private Declare Sub memcpy Lib &quot;kernel32.dll&quot; Alias &quot;RtlMoveMemory&quot; (lpvDest...

Как конвертировать переменную типа Double в переменную типа String?
Как конвертировать переменную типа Double в переменную типа String. И наоборот.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru