-
- Зачем списки в курятниках? Списки кур поименно? - Лeoнид Ивaнoвич(18.07.2012 23:21)
- Ну, например, количество датчиков для разных курятников даже на одной фабрике разное. Если опрос это отдельная
задачафункция, то она может опрашивать список подключенных датчиков и складывать полученные значения в соответствующие поля того Vit(110 знак., 18.07.2012 23:34)- Функция получает номер датчика, сохраняет значение в массиве с таким же индексом. Явно указатели не используются. - Лeoнид Ивaнoвич(18.07.2012 23:36)
- А как вы в программе размер массива зададите, если заранее неизвестно количество используемых датчиков? Размер сразу на все возможное количество, насколько ОЗУ хватит? - rezident(18.07.2012 23:42)
- В реальных устройствах такого не бывает, что неизвестно количество датчиков. Тот, кто рисовал схему и плату, количество знает точно. Если какие-то датчики могут быть не подключены - ничего, массив выделяем всегда для всех. Устройство ведь должно Лeoнид Ивaнoвич(42 знак., 18.07.2012 23:52)
- Бывает. Бывает, что несколько разных типов датчиков со своим типом опроса (аналоговые, различные цифровые, задаваемые с "верхнего уровня"), приложению назначается откуда брать значения (например клавиатурным вводом назначается), а к тому же с Vit(103 знак., 18.07.2012 23:59)
- А если количество датчиков потребует памяти больше, чем физически есть в контроллере??? Всё это бред собачий! Под такие вещи надо выделять массив структур и заполнять его при работе программы. Размер массива - максимальное количество FDA(236 знак., 19.07.2012 08:34)
- Например, 2 канала связи. Одних датчиков (на одном канале связи) может быть больше, других (на другом канале связи) меньше в зависимости от оперативно вводимой конфигурации. На каждый канал своя опрашивалка - ей не нужно сообщать свойствами из Vit(634 знак., 19.07.2012 08:55)
- А не проще в одном H-файле задать ВСЕ необходимые для программы константы? И в зависимости от них уже выделять память под массивы. В любом случае программа должно знать сколько она может поддерживать датчиков и адекватно реагировать если их FDA(42 знак., 19.07.2012 09:58)
- Если конфигурировать на ходу, то не проще. А планировать надо не в сферовакуумных константах, а в пределах реально доступных ресурсов. Особенно если пишет не один человек. Vit(409 знак., 19.07.2012 10:08)
- Использование динамических структур чаще оправдано в других случаях, например, при реализации сложного меню в интерфейсе. Здесь они реально обеспечивают удобство при описании дерева, хотя опять же Вы должны знать максимальное кол-во таких FDA(406 знак., 19.07.2012 10:02)
- Повторяю - НЕ НУЖНО знать максимальное кол-во таких элементов - в этом существенная разница, а стОит обслуживание списков очень недорого, да и компиляторы хорошо оптимизируют соответствующие конструкции. Вы не стесняйтесь - попробуйте:) И Vit(104 знак., 19.07.2012 10:13)
- Ладно, это тупой спор. Вы уходите о того, с чего начали. - FDA(19.07.2012 10:19)
- это Вы сказали, что использовать списки - бред собачий. при этом оказалось, что аргументация Ваша НИКАКАЯ и о списках Вы только слышали. - Vit(19.07.2012 10:23)
- Я нормально изложил свою позицию, советую перечитать вышесказанное ещё раз. - FDA(19.07.2012 10:28)
- Ответьте, пожалуйста, на один вопрос: как задать размер списка? - Vit(19.07.2012 10:53)
- Я нормально изложил свою позицию, советую перечитать вышесказанное ещё раз. - FDA(19.07.2012 10:28)
- это Вы сказали, что использовать списки - бред собачий. при этом оказалось, что аргументация Ваша НИКАКАЯ и о списках Вы только слышали. - Vit(19.07.2012 10:23)
- Ладно, это тупой спор. Вы уходите о того, с чего начали. - FDA(19.07.2012 10:19)
- Повторяю - НЕ НУЖНО знать максимальное кол-во таких элементов - в этом существенная разница, а стОит обслуживание списков очень недорого, да и компиляторы хорошо оптимизируют соответствующие конструкции. Вы не стесняйтесь - попробуйте:) И Vit(104 знак., 19.07.2012 10:13)
- А не проще в одном H-файле задать ВСЕ необходимые для программы константы? И в зависимости от них уже выделять память под массивы. В любом случае программа должно знать сколько она может поддерживать датчиков и адекватно реагировать если их FDA(42 знак., 19.07.2012 09:58)
- Например, 2 канала связи. Одних датчиков (на одном канале связи) может быть больше, других (на другом канале связи) меньше в зависимости от оперативно вводимой конфигурации. На каждый канал своя опрашивалка - ей не нужно сообщать свойствами из Vit(634 знак., 19.07.2012 08:55)
- Не сталкивался с таким никогда, поэтому мне трудно говорить на эту тему. И не верю в реальность такого. Я бы написал отдельную прошивку. - Лeoнид Ивaнoвич(19.07.2012 00:01)
- У меня такие девайсы сплошь и рядом - Vit(19.07.2012 00:07)
- Трудно найти общий язык тому, кто делает курятники, с тем, кто делает космические корабли. - Лeoнид Ивaнoвич(19.07.2012 00:10)
- При чём тут корабли? Я в своё время чуток коровники автоматизировал - ну и что тут такого? - Vit(19.07.2012 00:19)
- Вот и я автоматизировал. И коровники, и элеваторы. И всё без указателей. - Лeoнид Ивaнoвич(19.07.2012 00:28)
- Что тут сказать - герой - Vit(19.07.2012 00:31)
- надо говорить "Да гений, гений." ;> - Snaky(19.07.2012 02:25)
- Что тут сказать - герой - Vit(19.07.2012 00:31)
- Вот и я автоматизировал. И коровники, и элеваторы. И всё без указателей. - Лeoнид Ивaнoвич(19.07.2012 00:28)
- Вывод: надо делать космические курятники :)) - MBedder(19.07.2012 00:13)
- При чём тут корабли? Я в своё время чуток коровники автоматизировал - ну и что тут такого? - Vit(19.07.2012 00:19)
- Трудно найти общий язык тому, кто делает курятники, с тем, кто делает космические корабли. - Лeoнид Ивaнoвич(19.07.2012 00:10)
- У меня такие девайсы сплошь и рядом - Vit(19.07.2012 00:07)
- А если количество датчиков потребует памяти больше, чем физически есть в контроллере??? Всё это бред собачий! Под такие вещи надо выделять массив структур и заполнять его при работе программы. Размер массива - максимальное количество FDA(236 знак., 19.07.2012 08:34)
- Бывает. Бывает, что несколько разных типов датчиков со своим типом опроса (аналоговые, различные цифровые, задаваемые с "верхнего уровня"), приложению назначается откуда брать значения (например клавиатурным вводом назначается), а к тому же с Vit(103 знак., 18.07.2012 23:59)
- В реальных устройствах такого не бывает, что неизвестно количество датчиков. Тот, кто рисовал схему и плату, количество знает точно. Если какие-то датчики могут быть не подключены - ничего, массив выделяем всегда для всех. Устройство ведь должно Лeoнид Ивaнoвич(42 знак., 18.07.2012 23:52)
- Это использование глобальных переменных, ну и, опять же, явное задание количества датчиков. Никто не запрещает, но модульный подход против:) - Vit(18.07.2012 23:42)
- Глобальные они только внутри небольшого модуля. А что такое "неизвестное количество датчиков", я так и не понял. У нас же конкретная печатная плата. - Лeoнид Ивaнoвич(18.07.2012 23:54)
- У Вас для каждой платы своя программа? У меня нет. Я ленивый пишу одну прогу для всех плат. Поэтому и кол-во датчиков не ограничиваю. Alloc рулит и уже давно(на пиках с 2005г). - abivan(19.07.2012 11:21 - 11:26)
- У Вас, насколько помнится, используется MicroLAN - датчики вне платы - Vit(19.07.2012 00:01)
- Да, но никогда не используется их адресация. Каждый датчик тянется отдельным проводом. - Лeoнид Ивaнoвич(19.07.2012 00:02)
- И это правильно, ибо так надежнее всего - от вылета одного датчика обмен с соседями не пострадает - MBedder(19.07.2012 00:05)
- Да, но никогда не используется их адресация. Каждый датчик тянется отдельным проводом. - Лeoнид Ивaнoвич(19.07.2012 00:02)
- Глобальные они только внутри небольшого модуля. А что такое "неизвестное количество датчиков", я так и не понял. У нас же конкретная печатная плата. - Лeoнид Ивaнoвич(18.07.2012 23:54)
- А как вы в программе размер массива зададите, если заранее неизвестно количество используемых датчиков? Размер сразу на все возможное количество, насколько ОЗУ хватит? - rezident(18.07.2012 23:42)
- Функция получает номер датчика, сохраняет значение в массиве с таким же индексом. Явно указатели не используются. - Лeoнид Ивaнoвич(18.07.2012 23:36)
- Ну, например, количество датчиков для разных курятников даже на одной фабрике разное. Если опрос это отдельная
- Угу. Нужно спросить у Л.И., использует ли он структуры. - Vladimir Ljaschko(18.07.2012 22:24)
- Да, структуры использую. Но доступ делаю через ".", а не "->". - Лeoнид Ивaнoвич(18.07.2012 23:22)
- Хмм - Тогда здесь и всплывает полезное качество указателей - использование для для адресации к регистрам, битовым полям и т.д. - Make_Pic(19.07.2012 02:10)
- Не посмотрел - ниже Гудвин в ту же "точку" пишет - Make_Pic(19.07.2012 02:12)
- М-м... Есть буфер. Принимаются/передаются пакеты с самыми разношерстными структуированными данными. Интерпретируются, например, по содержимому первого байта(тип пакета/структуры). Что в тиньке, что в ПЦ доступ к полям без присваивания адреса Гудвин(91 знак., 19.07.2012 01:03)
- только при "->" однозначно будет подставлено константное значение смещения, а при "." как компилер захатит/смагёт - может и в рантайме начать считать - Vit(18.07.2012 23:48 - 23:50)
- Для гнуси выше сказанное аксиома, для других компиляторов не факт - Make_Pic(19.07.2012 02:16)
- Хм, а где это описано? - MBedder(18.07.2012 23:59)
- поищу первоисточник - маякну. по факту было так. например, один и тот же код для AVR IAR 5.40 в этом деле заметно уделывает 5.20 - Vit(19.07.2012 00:05)
- Небось просто крякнутая оптимизация загнулась :)) - MBedder(19.07.2012 00:06)
- уговаривать не буду. если не найду, то можешь считать, что я прогнал (профит мне останется:) - Vit(19.07.2012 00:10)
- Небось просто крякнутая оптимизация загнулась :)) - MBedder(19.07.2012 00:06)
- поищу первоисточник - маякну. по факту было так. например, один и тот же код для AVR IAR 5.40 в этом деле заметно уделывает 5.20 - Vit(19.07.2012 00:05)
- +100500 - патамушта на один клавотык меньше :)) - MBedder(18.07.2012 23:45)
- Это патамушта вы современные IDE не используете. В Visual Studio количество клавотыков для "." и "->" одинаковое (1 штука). - Apтём(19.07.2012 00:17)
- Да я тебе в любой самой сраной IDE сколько угодно наваяю макрокнопок - толку то - MBedder(19.07.2012 00:22)
- Это патамушта вы современные IDE не используете. В Visual Studio количество клавотыков для "." и "->" одинаковое (1 штука). - Apтём(19.07.2012 00:17)
- Для такого способа доступа нужно знать имя структуры. - rezident(18.07.2012 23:43)
- Я сам даю имена всем структурам, массивам, переменным. Соответственно, я их знаю. Или Вы про программирование в состоянии сильного алкогольного опъянения? - Лeoнид Ивaнoвич(18.07.2012 23:47)
- А что, разве можно что-либо писать на С на трезвую голову? :)) - MBedder(18.07.2012 23:56)
- Если она typedef'нутая - то необязательно - MBedder(18.07.2012 23:46)
- Я сам даю имена всем структурам, массивам, переменным. Соответственно, я их знаю. Или Вы про программирование в состоянии сильного алкогольного опъянения? - Лeoнид Ивaнoвич(18.07.2012 23:47)
- Хмм - Тогда здесь и всплывает полезное качество указателей - использование для для адресации к регистрам, битовым полям и т.д. - Make_Pic(19.07.2012 02:10)
- Да, структуры использую. Но доступ делаю через ".", а не "->". - Лeoнид Ивaнoвич(18.07.2012 23:22)
- Зачем списки в курятниках? Списки кур поименно? - Лeoнид Ивaнoвич(18.07.2012 23:21)