- Как без использования RTOS красивее правильнее сделать, чтобы запускалась последовательно очередь из функций поочередно, но во время ожидания TimeDelay события каждой функцией, управление отдавалось main loop? - Make_Pic(11.09.2015 16:54, MCU, полностью)
- Интересно что выберете в итоге - avr495(16.09.2015 21:32)
- МК то какой? - =AlexD=(15.09.2015 07:34)
- а можно узнать причины, по которым собственно изобретаются велосипеды, а не используется RTOS ? а то срача развели - на три экрана, и теперь за деревьями не видно леса. - Mahagam(14.09.2015 15:52)
- Подход, если не нужно реальное вытеснение (т.е. критично время реакции), порочный: сложные системы в "больших компьютерах", наоборот, стараются сделать однопоточными и событийно-управляемыми. Иначе сложность синхронизации параллельных пороков fk0(1890 знак., 12.09.2015 13:33, ссылка)
- Молодой человек! Сие называется планировщик и писать его неделе 2 ручками. Чего заморачиваться-то? - st256(12.09.2015 11:39)
- Погуглите и посмотрите попытки реализации диспетчера задач на изяэлектроникс.ру и несколько статей о планировщиках на чипэнабле. Что-то подобное было, но, помню, не без интересных особенностей и недоразумений... - Олдфаг(12.09.2015 09:59,
)
- И чем это будет принципиально от RTOS отличаться? - AlexG(12.09.2015 09:54)
- «Компьютер — это конечный автомат. Потоковое программирование нужно тем, кто не умеет программировать конечные автоматы» (с)Алан Кокс - IBAH(11.09.2015 21:01, ссылка)
- Уважаю энтузиастов, но часто проклинаю авторов когда приходится поддерживать/развивать такие программы( Так же, как и в случае калбеков, вначале теряю кучу времени на понять кто кого вызывает. Это как переводить иностранный технический текст со Олдфаг(88 знак., 12.09.2015 10:29,
)
- Странно... некоторые утверждают наоборт, открою маленький секрет, представьте что это не программа, а схема, точнее, даже, это программа моделирующая работу электрической схемы, типа цифрового фильтра с БИХ, а если воспользоваться понятием IBAH(43 знак., 12.09.2015 13:17)
- Угу. Схема, в которой вызываемые функции или case понятия не имеют кто, после кого, и и по какому внешнему входному запросу их вызвал. Это не схема, в которой от элемента нельзя проследить связь вверх. Для такой "схемы" нужна ещё одна схема)) - Олдфаг(12.09.2015 13:58,
)
- Процедурность головного мозга!!! в схеме никто никого не вызывает!!!! - IBAH(12.09.2015 14:08)
- Вы все напутали. Повторю, если непонятно: в схеме можно проследить связь вверх. В свищ технологии и кал-бэках это затруднительно. Теперь яснее? А связь на схеме, это, в первом приближении, и есть "вызов" в программе. - Олдфаг(12.09.2015 14:17,
)
- Эта связь как раз и не нужна и только запутывает. В свитч-технологии все нужные связи -- в схеме автомата. А кто кого вызывает -- чисто технический вопрос. - fk0(12.09.2015 14:28)
- Увы, мне частенько платят (и разговор про это), чтобы разобраться в программе без любезно прилагаемой схемы ее автомата. И не знаешь там что за автомат:Шмайссер или ППШ. - Олдфаг(12.09.2015 14:35,
)
- Мили или Мура. - fk0(12.09.2015 14:40)
- С газировкой или с презервативами. - Скрипач(12.09.2015 15:44)
- Спешиал фо конференшен IBAH(1495 знак., 12.09.2015 22:02 - 13.09.2015 21:29)
- Зачем такой сложный 'инкремент таймера'? Почему не просто ++? - Олдфаг(12.09.2015 22:56,
)
- там не один таймер, а бесконечность... вжик-жик... бесконечность...вжик-жик... бесконечность...вжик-жик... бесконечность...вжик-жик... бесконечность... IBAH(854 знак., 13.09.2015 12:32 - 12:40, картинка)
- Смешно читать что никто никого не вызывает, когда в комментариях стоит фраза "вызов экземпляра". Ну да ладно. А обнуление счётчиков t->et не требуется? - Олдфаг(13.09.2015 23:11,
)
- Ну хорошо, а как на практике всю эту кухню применить - ближе к делу/телу?! Можно живой пример рабочий привести, а то все эти парадигмы колом из башки вылазят :) - Make_Pic(13.09.2015 19:19)
- парадигму я придумал сам и нарекаю схемотехнически ориентированное программирование Отлично :), теперь понятно как называть Ladder, FBD и ST до кучи, т.к. функции и алгоритмы все теже что и в FBD. - AlexG(13.09.2015 14:20)
- ну уж и пошутить нельзя... я же предупредил... там же было :):):):):) хотя если бы не картинка, ни за что бы не спалили :) - IBAH(13.09.2015 21:03 - 21:31)
- Нееее, ты не путай, чувак совершенно новую парадигму изобрёл.
В ней все через... Все совпадения случайны 8) Скрипач(313 знак., 13.09.2015 14:29 - 16:41)
- В программе которую сейчас пишу все больше замечаю БД-ориентированное программирование. Есть набор данных и пачка функций, эквивалентных запросам к базе данных: добавление данных, выборка данных подпадающих под условие, проверка наличия данных AlexG_(93 знак., 14.09.2015 06:11,
)
- Сотня-полторы это даже не средняя, а совсем небольшая программа, в такое количество лично мне сложно уложиться. С другой стороны, смысл FBD вовсе не в экономии ячеек, а в том чтобы по максимуму ограничить фантазию программиста и не дать даже AlexG(60 знак., 13.09.2015 18:42)
- Coroutine или protothreads LightElf(62 знак., 11.09.2015 17:28)
- Есть такое, лично я юзаю во всех поделках уже лет 7, удобно. Из само собой имеющихся плюсов типа неограниченного множества сообщений и виртуальных таймеров есть еще один плюс, новая "степень свободы" для отладки программы, ее состояние. - avr495(11.09.2015 16:56 - 17:03, ссылка)
- Кто-нибудь сталкивался с TCP/IP-стеком CycloneTCP от ORYX Embedded? Как оно в сравнении с другими вариантами? Есть ли какие-то грабли? - AlexG(16.09.2015 18:45, MCU)
- поделитесь утилиткой bin2hex abivan(207 знак., 15.09.2015 17:03, MCU, полностью)
- MSP430F5438A вывод RST в режиме NMI, при переходе в LPM3 исчезает ACLK. Внешне проявляется в остановке часов на время спящего режима. Предположил, что ACLK не работает. Для проверки вывел ACLK в порт. Так и есть, при притягивании вывода NMI к Алексей_Ш(452 знак., 15.07.2015 18:03,
, MCU, полностью)
- Все, разобрался. UCSCTL8 регистр я обнулял, а надо было один бит оставить. Самое интересное, что когда NMI не исспользовал, все работало с "нулевым" регистром. - Алексей_Ш(16.07.2015 17:49,
)
- Еще заметил, что фаза ACLK в момент пробуждения дергается несколько раз. Значит, скорее всего XT1(32768 гц) останавливается, а потом стартует. - Алексей_Ш(16.07.2015 00:17,
)
- в errata есть CPU29, может поможет DVV(88 знак., 15.07.2015 19:12)
- UART не принимает больше одного байта. Контроллер MSP430F4152 olegall(1071 знак., 14.07.2015 09:37 - 09:55, MCU, полностью)MBedder
- Процессор: MSP430F4152 olegall(491 знак., 23.08.2015 11:34, MCU, полностью)
- Может кому пригодится. Китайская контора делает 4-8 разрядные микроконтроллеры. В обогревателе Timberk нашел такой. - Codavr(23.08.2015 23:08, MCU, ссылка, полностью)
- Подскажите пожалуйста контроллер, в котором есть минимум 16 разрядный АСИНХРОННЫЙ счетчик с Output Compare. Нужно получить асинхронный целочисленный делитель для PLL, а ставить только ради этого CPLD страсть как не хочется. Страдает бюджет изделия my504(26 знак., 21.08.2015 09:55, MCU, полностью)
- А подать вашу частоту для деления на тактовый вход процессора не пробовали? Ну так попробуйте - обойдётесь без всякой асинхронности - argus98(22.08.2015 12:17)
- Пикоманы'с... MSP430G2. С асинхронностью у него как раз все пучком. Стоит копейки. От 8 ног. - Гудвин(22.08.2015 11:59)
- Целочисленный делитель? 155ИЕ2, 155ИЕ5 под это заточены. И их аналоги. Легко объединяются в стаи. - Крок(21.08.2015 17:03)
- А цыпресовые PSOCи не спасут? - ASDFS(21.08.2015 11:53)
- Можешь глянуть в сторону микрочипа. Например за 50 центов PIC10F322. Если мало ног, то есть большие братья. Shatun_(470 знак., 21.08.2015 10:53)
- Мы с Вами одинаково мыслим? :))) my504(536 знак., 21.08.2015 11:17)
- По ссылке можно хоть PIC16F18877 - 4KB RAM 56KB FLASH 256B EEPROM 40pin. Ну или попроще под задачу. А если и этого мало, то тогда, да, как сам и написал. - Shatun_(21.08.2015 11:31, ссылка)
- А если соединить асинхроный 8-ик с 8 битным таймером последовательно. - ilyaul(21.08.2015 11:29)
- Это как? Не понял. - my504(21.08.2015 11:40)
- Выход OCR одного на вход Tn другого - ilyaul(21.08.2015 14:56)
- Так уже выход будет синхронным. Проблема как раз в этом. После биений входной частоты и тактового МК придется долго делить, чтобы размыть полученный джиттер. - my504(21.08.2015 14:59)
- Судя по всему вот в этой линейке ilyaul(128 знак., 21.08.2015 15:22)
- Это вряд ли. Все таймеры с OC выходами строго синхронные. Асинхронен только TMR1, но у него нет выхода. Только прерывание, то есть опять синхронизм. - my504(21.08.2015 17:24, картинка)
- Ну, зачем эти сложности, аж, дспик целый. tiny 24/44/84. Таймер T1 - тупо программируемый делитель. Внешний вход T1, выходы ОС1А и ОС1В могут менять состояние на противоположное при совпадении. Внимательно читайте эрраты, у некоторых из них при Ациль Шифер(112 знак., 21.08.2015 19:27 - 19:39)
- Вот и у XMega, похоже, так же ситуация. Асинхронный захват вроде бы есть, но использовать его можно только на вызов прерывания. - Ксения(21.08.2015 18:00, картинка)
- Можно пересинхронизовать по правильному фронту внешним триггером. - SciFi(21.08.2015 17:42)
- Не понимаю, почему бы не тактировать МК от твоей ЧМ? - MBedder(21.08.2015 17:41)
- Ну и вопрос. Все меги такие, в тинях PLL, вашпе унутре; 51х таких - хоть ж. жуй. Частоты какие? Уровень сигнала? - Ациль Шифер(21.08.2015 10:48)
- Нет ли у кого в исходнике Си таблицы для термопар типа ТХА (тип К)? - bnb62(14.08.2015 07:20, MCU, полностью)
- Отображение времени. Без песковского "черепа" с турбийоном, конечно, но может быть полезно как идея когда не хватает места на экранчике. На одном знакоместе 5х8 от символьного ЖЖИ можно отобразить часы и минуты. И ещё мигать секундной точкой)) Олдфаг(44 знак., 15.08.2015 12:29,
, MCU, полностью)
- STS, prepaid, smart-карта - кто в теме? Требуется организовать предоплату услуг, оказываемых дивайсом - VL(05.08.2015 16:01,
, MCU, полностью)
- WO12864C2-TFH# Andrei_S(6124 знак., 06.08.2015 12:22, MCU, полностью)
- Макросы интересные => . Да, не по канонам, но удобно, чёрт побери! - Dingo(21.07.2015 07:28, MCU, ссылка, полностью)
- Макросрач какой то получился ;) - Make_Pic(23.07.2015 22:28)
- ЗАМЕЧАТЕЛЬНО! SERHIO(117 знак., 23.07.2015 00:59)
- А вот интересно, можно ли "допилить" так, чтобы было невозможно читать, описанный таким способом, выход и писать вход? - Скрипач(22.07.2015 18:44)
- Да, можно. Но, скорей всего потеряем либо в удобстве, либо в понимании человеком текста. Опять же, как быть, если надо переклчать in\out во время работы? - Dingo(22.07.2015 18:54)
- Можно, например, вот так (и тогда ничего не теряется) Скрипач(328 знак., 22.07.2015 19:03)
- Слушайте, это абсурд. Делать макрос для "REG &= ~(1 << N)"? Если кто-то не понимает такую запись - уволить нах по статье с записью в трудовую книжку. Давайте ещё #define PLUS(a, b) ((a)+(b)) - SciFi(22.07.2015 19:32)
- Вот я тоже сначала на это накололся :) Скрипач(79 знак., 22.07.2015 19:37)
- Пофиг. Если чел не может в трёх
соснах операторах разобраться, то нужно отобрать у него клавиатуру и вручить напильник. Ибо нефуй. - SciFi(22.07.2015 19:42)
- Не скажи. Если можно один раз, в одном месте описать переменную и не вспоминать больше прямой это бит или инверсный и какой он по счету в регистре, то это правильный дзэн. - Скрипач(22.07.2015 19:46)
- Ну да. И делается это так: в шапке сишника пишем "#define ASSERT_CS() do { PORT &= ~(1 << 3); } while (0)". И не нужны все эти set_hi, set_lo. - SciFi(22.07.2015 20:56)
- Угу. А потом если поменять номер бита то менять магические цифры в нескольких местах: где ставите,где сбрасываете, где проверяете состояние для тоггливания... Вы все почему-то забываете, что у управления битами есть 3 уровня представления: Олдфаг(508 знак., 22.07.2015 23:04,
)
- Вся работа с конкретным портом и битом должна быть упихана в один маленький файл. Который содержит функции на уровне "выполнить такое-то действие" относительно некого внешнего устройства (что может затрагивать более одного бита). Принципиально, fk0(270 знак., 23.07.2015 10:57, ссылка)
- Все вы дураки и не лечитесь :-) =AlexD=(774 знак., 23.07.2015 07:05)
- О ерунде спорить изволите, а главного не замечаете. Такие "имена" нельзя использовать в качестве индексов в массивах. А я, например, частенько. Скрипач(732 знак., 23.07.2015 09:39 - 24.07.2015 10:47)
- Для индекса можно operator[] переопределить :-), фигня вопрос, тем более что нужно это редко. - =AlexD=(23.07.2015 09:47)
- А в переменную сохранить? - Скрипач(23.07.2015 09:53)
- Что сохранить? - =AlexD=(23.07.2015 09:55)
- Адрес входа или выхода. Скрипач(850 знак., 23.07.2015 09:58)
- Ничё не понял. Так индекс же он и есть. Более дистиллировано можешь показать что тебе нужно? - =AlexD=(23.07.2015 10:01)
- Как-то так. Скрипач(227 знак., 23.07.2015 10:08)
- Блинн, дошло, тебе тупо нужно передавать маску, ну так и передавай её явно, иначе читатели твоего кода будут тупить так-же как и я =AlexD=(372 знак., 23.07.2015 10:47)
- Я использую номер бита в виртуальном порту. На вход это отфильтрованное, очищенное от дребезга, на выход - просто "отвязанное" от фактических регистров. Скрипач(203 знак., 23.07.2015 11:16 - 11:18)
- Идея с маской вообще не умная, т.к. тот кто будет разводить печатную плату может перекинуть биты между разными портами. Если это не параллельная шина конечно. - fk0(23.07.2015 10:59)
- Одни абстракции заменяются на другие, которые тоже нужно учить, документировать и запоминать, учитывать возможные побочные эффекты. Всё превращается в bloatware. Не нужно плодить лишних сущностей, сверх необходимого. Должен быть один слой HAL и в fk0(475 знак., 23.07.2015 10:52, ссылка)
- Незнаю. Я вчера бегло пробежался по "библиотеке" прикладных алгоритмов - в двух третях используется. - Скрипач(23.07.2015 09:53)
- Неплохо... а теперь без "++", на Си? ;) - Dingo(23.07.2015 07:45)
- "Все тот же сон!" (с) Опять эта куча магических цЫфр сдвига! Да когда ж поймёте, что позицию бмтта надо описАть единожды, и далее обращаться к биту по логическому имени. - Олдфаг(23.07.2015 07:36,
)
- +1. Так правильнее. Но технологический прием - передача нескольких параметров в макрос под одним именем - вполне себе представляет академический интерес. - Скрипач(22.07.2015 21:02)
- удобство безусловно теряется. Когда применяется одно из действий к одному из объектов- две "переменных", все понятно. Когда их 4, и нужно помнить последовательность, это труба, по крайней мере для моего утомленного мозга. - VL(22.07.2015 19:14,
)
- Лично я предпочитаю более осмысленные абстракции. Скрипач(183 знак., 21.07.2015 08:13 - 14:08)
- "Дикий народ, дети гор". Еще так можно VL(8812 знак., 21.07.2015 08:03,
)
- Почему не по канонам и почему им. Аскольда Волкова? :))) Подобные макросы любая SPL по умолчанию содержит. - Mebius(21.07.2015 07:59)
- Какой то можно граф. контроллер внешний прицепить к MIPS32 контроллеру, чтобы были к нему доступные драйверы под Linux? - Make_Pic(16.07.2015 12:50, MCU, полностью)
- Есть два устройства, оба с выходом в интернет, но через НАТы, фаерволы и т.п. ограничения. Надо их связать между собой. Для этого предполагается завести на каком-нибудь обычном хостинге сайт, через который и осуществлять связь. Такое реально? Как AlexBi_(416 знак., 16.07.2015 09:38,
, MCU, полностью)