После полугода кодинга на всякие ПКшные темы, похоже, припирает начать осваивать МК. Задачка у меня - разобраться с разработкой под PIC, на примере решения одной моей жизненной задачи. Опыт освоения ПК-шного С есть, думаю и тут разберусь. Подскажите какой-нибудь приемлемый классический вариант ЦП, Что-то 16 семейства, из разряда популярных, и пригодных с некоторым запасом под далее описанные задачи. Я соберу на макетке, и буду тренироваться с "полным погружением", уйдет на это неделя или полгода - неважно...
Задачи: 1. Читать 1wire, возможно писать и перерабатывать данные от ключа. Поначалу SN, но потом как натренируюсь прицеплю передачу в ключ данные. Буду при этом считать СРС и возможно, простейшие преобразования коротких блоков данных выполнять. Обращаю внимание - что это НЕ через UART, ибо последний как показал опыт - не самое оптимальное для 1wire.
2. По UARTу при этом обмениваться с ПК. Как получение данных о серийном номере, так и управлять работой устройства. Позже прицеплю 485.
3. Управлять 2-мя независимыми каналами 5V - звуковые сигналы простейшие подавать, и управлять релюшкой.
4. Иметь свободный выход i2c для табло, что буду туда подавать и как - по ходу разберусь.
Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4558 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
vinni_puh писал(а):
Что-то 16 семейства
Забейте на 16-ую серию, берите что-нибудь из 18-ой - ничем не сложней в изучении, а лучше на порядок. Для примера - 18F26(25)K22 - классика нового поколения. Шустрые, объёмные, богатые периферией.
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
По поводу 1wire на uartе действительно, есть более новая информация чем то, о чем я написал. Дело в том, что 1wire на uart я читал под ОС на компе, из-под драйвера, что приводит к значительному удлинению времени посыла байтов FF в цикле чтения 64 бит, и прочего. Есть информация, что uart на компе и МК это по скоростным характеристикам - абсолютно разные вещи.
Подскажите пожалуйста, а как реализуется многопотоковость? В ПК-шном С есть чудо-функция fork(), а как это можно реализовать на МК? ЧТобы допустим, одним потоком обрабатывать uart и I2C, 2-м - 1wire. Знаю, что это возможно, очень бы хотелось знать как.
Что значит "одним потоком"? Любой контроллер (процессор/ядро процессора) в любой момент времени обрабатывает только одну операцию. Дальше - дело программиста как организовать выполнение нескольких задач "одновременно". Это называется распределение задач. Если у вашего контроллера есть аппаратные I2C, USART и т.д. - работаете с ними как с отдельной периферией (читать документацию). Если у контроллера есть DMA - ещё проще, но придётся думать как потом "разгребать" данные.
Да, в ОС многозадачность обслуживает ядро ОС. На МК ведь ничего подобного нет, и как-то распределять придется вручную. В целом цель примерно следующая - например, на 1 uart-е висит обмен по 485, и предположим, могут формироваться сессии обмена длительностью в целую сессию, а не 1-2 пакета. При этом, если прерывать основной бесконечный цикл на время этой сессии - остановится допустим генерация сигнала 1wire. Нужно как раз таки, чтобы допустим 2 основных внешних обмена (1wire, uart) работали как бы независимо друг от друга, не блокируясь взаимно. В общем простом бесконечном цикле это не выйдет ИМХО, под ПК я бы это сделал в 2 потока, помня разумется, что под ПК что под МК многозадачность - явление кажущееся по определению.
Правильно ли я понимаю? И если правильно, как разделить ресурсы между задачами, чтобы это было хоть как-нибудь наглядно юзабельно. До этого опыт на С есть только под комп, KIT-2 только завтра пойду покупать, пока руки не доходили.
А ПИКов с платами как раз целый ящик, будет на чем потренироваться.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения