И эта штука не работала. Потом я вспомнил, что на эти грабли уже наступал... что нужно не указатель на волатильную переменную, а именно волатильный указатель.
Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4614 Откуда: Планета Земля
Рейтинг сообщения:4 Медали: 1
Все спецификаторы, находящиеся до *, относятся к объекту, на который указывает указатель. А те, которые после *, - к самому указателю.
Код:
int const * ptr; // Указатель на константу int * const ptr; // Константный указатель на переменную int const * const ptr; // Указатель-константа на константу
Ожидалось, что это будет 22 байта на запись, но оказалось, что sizeof() возвращает 24. Похоже что vbat и sensors "выровнены" по четным адресам. Как это упихнуть поплотнее? Я расчитывал, что смогу около 30 секунд записать в 256к (400 записей в секунду), а тут только 27. Вручную OR-ить два байта в 16-битную переменную? Глобальные настройки,типа pack structure, менять нет желания.
Зарегистрирован: Пн ноя 04, 2019 09:58:29 Сообщений: 104 Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения:0
Добрый вечер. Тут на досуге разбираю по запчастям одного монстра. classAdafruit_SSD1306:publicAdafruit_GFX{...} Конструкция подобного вида class AХХХ : public BХХX {...}; Вопрос - повадки, свойства, поведение? В AtmelStudio компилируется уже без ошибок. Но вызвать в main.cpp пока не получается. Там ещё целая свита хидеров прицеплена. Ни кто их них не буянит. Ардуины нигде нет - все приведено к нормальному С++
Зарегистрирован: Пн ноя 04, 2019 09:58:29 Сообщений: 104 Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения:0
Вот-вот. Такие же подозрения. Полиформизм понимаете ли.. Ну да ладно. Сейчас всё закомментировал. И потихоньку раскомментировываю код. Пустой скелет классов работает и по мере его наполнения с скомпиляцией на каждом этапе можно узнать где собака зарыта. Просто хочу переписать эту библиотеку для голого МК на чистом С++.
Добавлено after 10 minutes 29 seconds: Да, есть такая!
Код:
// This MUST be defined by the subclass: virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
"Это ДОЛЖНО быть определено подклассом:" (перевод)
Добавлено after 22 minutes 42 seconds: Подробнее про virtual void func() = 0;тут.(ссылка)
как элегантней проинициализировать большой массив структур ? имеется массив структур каждая структура состоит из 3 полей перед записью данных я произвожу "обнуление", записывая пробелы, дабы там небыло мусора
Код:
typedef struct{ char id[4]; // номер гонщика char car[10]; // машина гонщика char time[4]; // финишное время } member_t;
member_t racer[30]; // гонщики
for (int i = 0; i < 29; ++i) { strcpy(racer[i].id, " "); strcpy(racer[i].car, " "); strcpy(racer[i].time, " "); }
поскольку поля всего 3 то сделать это легко а как быть если полей за сотню и более ?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения