Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 209

обнуляются все байты переменной, кроме последнего

19.10.2017, 18:46. Показов 1150. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Я написал функцию для вывода значения переменной в терминал на экран РС. Выводится в hex ФОРМАТЕ побайтно.
Старшие байты почему-то равны 0. Проверил на 2-х байтной и на 4-х байтной переменной.

Кликните здесь для просмотра всего текста
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//---------------------- Start of intervalBreak------------------------------------
void intervalBreak (void)
 
{
    USART_Transmit('B');
//  cli(); // stop  interrupt while
    //-----------------start negative counting-----------------
     //LowLength = LowLength + TCNT1;//read timer and add to variable
     Buffer = TCNT1;     //keep last break interval time
     TCNT1 = 0;  //clear timer
     //if ((270 <= Buffer ) & (Buffer <= 330))  //check that  break interval is 300ms +-10%
     //{
     HighLength = HighLength + Buffer;//Collect pulse time...
     //-----------------------------start Transfer variavle test---------------------
     short sizeOfArray = 4; // размер массива 2 bytes (введет пользователь)
     union
     {unsigned int num;
         unsigned int bytes[sizeOfArray];   // int 4 bytes
     }freq;
     freq.num = 0;
     freq.num = 0xAAFFCCDD; //присваиваем значение 2х байтовой переменной 43981
     
     USART_Transmit(0x0a);//переход на новую строку
     USART_Transmit(0x0d);//переход в начало строки
     USART_Transmit('3');//Передаем при включении
     USART_Transmit('3');//Передаем при включении
     USART_Transmit(freq.bytes[3]);//Передаем при включении High byte (22)
     USART_Transmit('2');//Передаем при включении
     USART_Transmit('2');//Передаем при включении
     USART_Transmit(freq.bytes[2]);//Передаем при включении Low byte (11)
     USART_Transmit('1');//Передаем при включении
     USART_Transmit('1');//Передаем при включении
     USART_Transmit(freq.bytes[1]);//Передаем при включении High byte (22)
     USART_Transmit('0');//Передаем при включении
     USART_Transmit('0');//Передаем при включении
     USART_Transmit(freq.bytes[0]);//Передаем при включении Low byte (11)
     USART_Transmit('F');//Передаем при включении
     USART_Transmit('I');//Передаем при включении
     USART_Transmit('S');//Передаем при включении
     USART_Transmit('H');//Передаем при включении
     USART_Transmit(0x0d);//переход в начало строки
     USART_Transmit(0x0a);//переход на новую строку
 
     //-----------------------------end Transfer variavle test---------------------
     
     //}
     //else goto label1; //if not within limits, it's not service pulse
//  TCNT1 = 0;  //clear timer
//  TCCR1B = TCCR1B | 0x05; //start timer  from prescaler /1024
    //1 sec = 15625 0.3s = 4688  (4688/15625=0.300) 0.33=5156,25 0.34=5312,5 0.35=5469 0.27=4218,75  0.25s=3906
    
    //------------------start  of display (for debugging, later must comment it)-----------
    
     seg=28; //24-r// 20-L 24-r 28-SMALL L
     segchar(seg); //out on 7seg LED display
     //_delay_ms(100);
        
    
    //------------------end of display-----------
    
    EICRA = EICRA | 0b00000011;//Set interrupt requests  INT0-rising Edge
    j++;
    sei();
    
    
}
//======================= End of intervalBreak===================================



Я менял типы переменных ставил char (для 2 байтной переменной ) и int long.
хотелось бы узнать, как это исправить?
ПОДскажите пожалуйста, из-за чего это может быть?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2017, 18:46
Ответы с готовыми решениями:

Удалить все пробелы кроме последнего
учусь С++ , и по заданию нужно удалить все пробелы кроме последнего, не могу понять как поставить нужное условие: void __fastcall...

Выводит все числа, кроме последнего
Программа, которая должна считать количество повторяющихся чисел, но в ответе последние числа не учитываются.Помогите пожалуйста! ...

Регулярное выражение - удалить всё кроме последнего символа
Уже подзабыл, а найти не находится) Есть строка &quot;ВасяПупкин5&quot;, нужно удалить всё кроме последнего символа.

2
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.10.2017, 18:55
Лучший ответ Сообщение было отмечено design_m как решение

Решение

Если ты про union, то bytes должен быть массивом char.
1
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 209
19.10.2017, 19:39  [ТС]
спасибо, поменял на char - для 2х байтной переменной передала AAFF
а для 4 х байтной передала 00 00 СС DD вместо AAFFCCDD.
Что это может значить?

догадался: надо поменять тип переменной num

INT ==> LONG тогда 4х байтная тоже передается полностью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2017, 19:39
Помогаю со студенческими работами здесь

Взять все слова после двоеточия кроме последнего
Всем привет, помогите пожалуйста. Нужно взять все слова после двоеточия кроме последнего вместе с символами. К примеру есть текстовый...

Удалить в заданной строке все, кроме первого и последнего символа
Помогите пожалуйста, над написанием кода. &quot;Удалить в заданной строке все, кроме первого и последнего символа&quot;.

Все элементы массива, кроме последнего, сдвинуть на 1 элемент в право
Не как не могу разобраться :( Вообще не понимаю как решать. 1. В программе описан одномерный целочисленный массив с индексами от 0 до 10....

Заменить все числа массива, кроме первого и последнего, по заданной формуле
Дан массив из 10 чисел. Нужно заменить все числа кроме первого и последнего по формуле x=(x+x+x)/3

В новый вектор записать все элементы введённого, кроме первого и последнего
Задание: Задан произвольный вектор x. Создайте вектор y, содержащий все его элементы, кроме первого и последнего Попробовал...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru