Вы такое хотели? Доступ к данным внутри структуры осуществляется через указатель на эту структуру. Инкремент (++) работает.
Получается две структуры похожие. Только одна через указатель. А другая нет .Химия какая то. Но немножко не так.У меня в дефайнах кнопки.А в структуре переменные. Когда нажимаю кнопку выставляю флаг. При отжатии кнопки .И флаг обнуляю (nastroyki_p->menu_lcd)++;Это идея.Вы использовали две одинаковые структуры. И у вас всё вышло. Вам респект и уважение.1 строка как в учебнике.Вы присвоили одной структуры надругую структуры на &nastroyki;nastroyki_p = &nastroyki; структуре с левой стороны присваиваются адреса структуры правой стороны не так ли?Нужно попробовать в железе.С праздником вас с Рождеством Христовым.Не хватает мне образованности.Но до этого я не додумался.И ещё одно если if(nastroyki_p->menu_btn != 0) вот это флаг.То он в логической 1 или в 0.Я думаю в 1.Я правда пишу по топорному флаг==1;то nastroyki_p->menu_btn = 0;вот эту строчкуя вначале ставлю после (nastroyki_p->menu_lcd)++;инкримента.У меня иначе в железе с перебоями работает.Огромное спасибо.Но если использовать одну структуру с указателем на эту структуру.То наверное не выйдет.Я пока использую простые структуры.Но за этот момент.Редко делятся информацией.Спасибо.
Добавлено after 2 minutes 42 seconds: Professor Chaos, Ваш ник подходит вам.
Добавлено after 3 minutes 7 seconds: Я не могу похвастаться багажом знаний.Так как просто электрик.Любитель программирования STM32 AVR
Заголовок сообщения: Re: stm32 и переменные в структурах
Добавлено: Сб янв 08, 2022 09:33:15
Открыл глаза
Зарегистрирован: Вс мар 21, 2021 11:06:04 Сообщений: 41
Рейтинг сообщения:0
Почиитайте про структуры и указатели на них в любом учебнике по С/С++. Например тут.
Цитата:
Получается две структуры похожие. Только одна через указатель. А другая нет .Химия какая то.
Структура одна. Создаются две разных переменных. Одна имеет тип структуры. Вторая - тип указатель на структуру (звёздочка перед именем переменной при её объявлении/определении говорит о том, что это указатель). Затем указателю на структуру присваивается значение адреса структуры. И далее все действия над элементами структуры производятся через указатель на неё, используя оператор стрелка (->). Все те же самые операции над элементами структуры можно сделать используя имя структуры и оператор точка.
Данный фрагмент кода лишь показывает синтаксис указателей на структуры. При этом необходимости в них он не показывает. Всё то же можно было сделать и без указателя, обращаясь к структуре по её имени и используя оператор точка. В реальной жизни указатели на структуры применяются в более сложных случаях: 1. Для доступа к данным структуры из функций. 2. Для прохода по массиву структур. 3. При конструировании и работе со сложными типами данных: связанные списки, деревья, кольцевые буферы и т.п.
Ну это хорошо .А если мне до начала нужно переменные выставлять в ноль.Без структур я выставлял после инклудов и дефайнов .Где мне высттавлять.Потому что программа или вылетает в железе или глючит(зависает).Меню перестаёт переключатся.Я выставил в начала майна.?
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
ivan dimir, коли такие вопросы на пустом месте, то читай внимательно K&R и выполняй все задания. Потом советую к Богатыреву перейти, у него классный сборник примеров и задач, правда, под старый С. Но и так сгодится.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
ivan dimir, коли такие вопросы на пустом месте, то читай внимательно K&R и выполняй все задания. Потом советую к Богатыреву перейти, у него классный сборник примеров и задач, правда, под старый С. Но и так сгодится.
Вот, до сих пор не утратило актуальности. Да, если ты хочешь серьезно работать, а не дурью маяться, забуть о мелкомягкой мастдайке, как о страшном сне! Поставь себе линукс. Для начала можешь даже не линукс ставить, а какую-нибудь мастдайку на линуксовом ядре (бубунту, например), а как войдешь, поймешь, что systemd - адское говнище, и поставишь себе нормальный дистрибутив линукса, а не мастдайки.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Вот, до сих пор не утратило актуальности. Да, если ты хочешь серьезно работать, а не дурью маяться, забуть о мелкомягкой мастдайке, как о страшном сне! Поставь себе линукс. Для начала можешь даже не линукс ставить, а какую-нибудь мастдайку на линуксовом ядре (бубунту, например), а как войдешь, поймешь, что systemd - адское говнище, и поставишь себе нормальный дистрибутив линукса, а не мастдайки.
это достойный ответ.Извените я включил дурака.И спасибо за дельный совет.
Ну это хорошо .А если мне до начала нужно переменные выставлять в ноль.Без структур я выставлял после инклудов и дефайнов .Где мне высттавлять.Потому что программа или вылетает в железе или глючит(зависает).Меню перестаёт переключатся.Я выставил в начала майна.?
Можно и так. Но лучше делать инициализацию, т.е. совмещение определения переменной структурного типа и записи начальных значений в её поля. Т.е. в момент резервирования памяти под структуру она сразу заполняется требуемыми начальными значениями. Поищите в интернете "инициализация структур". Есть несколько способов инициализации структур. Например тут показаны два.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения