Этот пользователь сказал Спасибо Dublin за это полезное сообщение: |
19.07.2017, 00:57 | #1 |
Матёрый пользователь
Регистрация: 24.05.2010
Адрес: Херсон
Сообщений: 1,565
Вы сказали Спасибо: 871
Поблагодарили 695 раз(а) в 285 сообщениях
|
Микроконтроллеры. Всё обо всём.
Решил я немного поизучать эти все дела микроконтрольные (через книжки естественно), и весь вечер ломаю голову над одной проблемой.
Покажу фрагмент программы (микро attiny 2313) Скрытый текст:
Программа простая как двери: есть 8 светодиодов, которые должны переключатся одна за другой. Не понятен принцип работы цикла с инверсией(~). Если убрать инверсию, то переключение ламп в этом случае происходит, но горят одновременно все лампы. Если изначально включить инверсию (~perem) то байт 0x00000001 станет 0x11111110, тогда за счет открытости порта должны гореть 7 из 8 ламп (я так думаю, но так не происходит) А дальше по программе если двигать единицу и инвертировать байт, то вообще нифига не пойму, как тогда переключение происходит. Вообщем кто в этом понимает, - объясните на пальцах, пожалуйста.
__________________
хоп хэй лалалэй Последний раз редактировалось Dublin; 19.07.2017 в 01:01. |
Этот пользователь сказал Спасибо Dublin за это полезное сообщение: |
01.01.2007, 12:00 | |
Яndex
Спонсор
Регистрация: 01.01.2007
Сообщения: 500
Реклама показывается изредка по случайному принципу |
РЕКЛАМА
|
19.07.2017, 21:11 | #2 |
Матёрый пользователь
Регистрация: 24.05.2010
Адрес: Херсон
Сообщений: 1,565
Вы сказали Спасибо: 871
Поблагодарили 695 раз(а) в 285 сообщениях
|
Разобрались с ситуацией. Кому интересно - объясню.
Скрытый текст:
Так как один конец диода запитан на "+", другие соответственно подключены на выводы микроконтроллера (то есть необходимо для зажигания подавать "-" (или логический 0) на выход, этот момент мимо головы и пролетел). А теперь по циклу: Переменной изначально присваивается значение 0b10000000. Далее, в соответствии с циклом, это значение инвертируется, присваивается порту выхода (PORTB) и становится 0b01111111. 7 диод загорелся. Далее происходит побитовый сдвиг единицы в байте (0b01000000) и его инверсия с присвоением (0b10111111). Таким образом происходит поочередный перебор всех светодиодов в одном направлении. (с условием что переменная не равна 0b00000000. Если бы это было так, то 8 светодиодов последовательно бы зажглись и цикл бы закончился). В цикле else же светодиоды мигают в другую сторону.
__________________
хоп хэй лалалэй |
20.07.2017, 00:59 | #3 |
Разработчик
|
Знакомые картинки с Шпротеуса Тоже пишу программы под чипы Atmel. Правда в Bascom-AVR. Так уж сложилось, что несколько лет назад нужно было править исходник одной железяки и на тот момент я не понимал в программировании ни грамма. А исходник был написан в Баскоме. Поэтому пришлось сесть и начать... С тех пор пишу на Бейсике прошивки. Но посматриваю в сторону Си. Вы в Win AVR пишите или подобном?
Отработку в железе делал сперва на макетках с Atmega8, но когда появились Ардуины, то перешел на них. Гораздо дешевле, чем покупать специализированные отладочные платы за несколько тысяч рублей. Ну а когда устройство отработано, то адаптирую прошивку под нужный камень, делаю печатную плату и юзаю. Сейчас заинтересовался HMI Nextion: Позволяет выводит на дисплей инфу из микроконтроллера и вводить данные в него. Все по UART интерфейсу. |
Этот пользователь сказал Спасибо RUSHPIL за это полезное сообщение: |
20.07.2017, 10:52 | #4 |
Матёрый пользователь
Регистрация: 24.05.2010
Адрес: Херсон
Сообщений: 1,565
Вы сказали Спасибо: 871
Поблагодарили 695 раз(а) в 285 сообщениях
|
Ну почти - Atmel Studio. Я раньше немного интересовался С++, поэтому выбор языка для меня уже был очевиден. Базовый материал прохожу по книжке Белова А.В, так он там использует и ассемблер и Си; с ассемблером как то я сразу не подружился, а Си он использовал в Codevisionavr, в котором отладчика нет, да и свои подводные камни есть. Единственное чем понравился Codevisionavr - при создании проекта он сразу выдаёт "шпаргалку" на инициализацию портов, таймеров и т.д.
Добавлено через 5 минут Вот с Ардуино еще не знаком. Рановато пока туда лезть)
__________________
хоп хэй лалалэй |
21.07.2017, 19:26 | #5 |
Разработчик
|
В итоге все равно придете к Ардуино. Ибо на сегодняшний день нет удобнее и дешевле платформы с Atmel контроллерами на борту. Мне нравится в ней наличие встроенного USB-Uart конвертера, который позволяет прошивать контроллер по USB, не прибегая к использованию ISP программаторов типа USBASP. Плюс куча различных модулей периферрии на все случаи жизни, совместимые с этой платформой. Даже если самому по раздельности покупать микроконтроллер, обвязку к нему из кварца, кондеров и резистора на Reset, сделать плату самому, то выйдет дороже, чем купить Arduino Pro Mini, к примеру.
Ну а раз Вы на Си пишите, то стандартная программная оболочка для разработки программ Ардуины (Arduino IDE) Вам придется по душе |
Этот пользователь сказал Спасибо RUSHPIL за это полезное сообщение: |
21.07.2017, 20:18 | #6 |
Матёрый пользователь
Регистрация: 24.05.2010
Адрес: Херсон
Сообщений: 1,565
Вы сказали Спасибо: 871
Поблагодарили 695 раз(а) в 285 сообщениях
|
Читал раньше, читал, не вкурил, а теперь Вы открыли мне глаза. Получается есть готовый модуль, уже с готовой обвязкой, с МК, а к этому модулю можно подсоединять дополнительные модули, которые уже доведенные до ума. Так? То есть не надо заниматься ерундой по изготовлению плат, если есть уже готовые решения. Правда заметил, что младшие модели уже с впаянным процессором, и подбирать соотв. модель платы нужно под свои нужды. Так выходит.
__________________
хоп хэй лалалэй |
21.07.2017, 20:50 | #7 |
Инженер
Регистрация: 19.04.2008
Адрес: Север
Сообщений: 6,867
Вы сказали Спасибо: 10,523
Поблагодарили 7,134 раз(а) в 2,453 сообщениях
|
Ардуино - штука удобная.
К ней всяких доп. модулей, от LAN и Card Reader и до всяких там термодатчиков, акселерометров, GPS и магнитных компасов, дисплеев, сервоприводов (хоть простеньких, хоть мощных, на своём питалове через релюшку) готовых продаётся уйма. И софтину готовую найти можно в виде открытого исходного кода. Кто роботов лепит из них, кто охранные системы в авто, кто свистелки-перделки, кто "умный дом". У кого на что фантазии хватит. На работе с Mega, Uno и Pro Mini баловался. Ценники приемлемые вполне.
__________________
Internet is for cat Последний раз редактировалось Zlodey; 21.07.2017 в 20:56. |
Этот пользователь сказал Спасибо Zlodey за это полезное сообщение: |
22.07.2017, 01:52 | #8 | |
Разработчик
|
Именно. Если взять младшую модель из линейки - Arduino Pro Mini, то там МК с обвязкой, кнопка сброса, подключенная к Reset контроллера и стабилизатор на 3,3 Вольта для питания периферии (типа дисплеев от Нокиа).
Цитата:
ATTiny есть смысл использовать, если кране критично энергопотребление. Из готовых модулей на Тини могу посоветовать Digispark с ATTiny85 на борту и софтовой эмуляцией USB интерфейса. На ATTiny2313 готовых решений не встречал. |
|
Этот пользователь сказал Спасибо RUSHPIL за это полезное сообщение: |
23.07.2017, 00:16 | #9 |
Матёрый пользователь
Регистрация: 24.05.2010
Адрес: Херсон
Сообщений: 1,565
Вы сказали Спасибо: 871
Поблагодарили 695 раз(а) в 285 сообщениях
|
Почитав интернет про ардуино меня навеяло на такие мысли: а везде ли полезна эта платформа? Я сейчас, например, изучая регистры, таймеры, биты-байты (про которые и понятия не имел) не вижу смысла лезть в ардуино. Я так понял такая платформа годится для "собрал и готово". То есть не надо думать какие куда регистры лепить, - всё уже на ладони - подключай библиотеки и оперируй ими. Имхо, это моё мнение. Для меня полезнее изучить все основы программирования и программирования МК, чем так с воздуха пересесть на ардуино. Кто то писал (на просторах), мол, и школьного курса информатики для этого хватит Повторю, это сугубо моё мнение, несомненно есть и инакомыслящие люди
__________________
хоп хэй лалалэй Последний раз редактировалось Dublin; 23.07.2017 в 00:23. |
24.07.2017, 02:05 | #10 |
Разработчик
|
Я тоже не приветствую программную оболочку Ардуины, т.к. привык дергать регистрами и отключать ненужную периферию МК, которая по умолчанию запускается при работе в Arduino IDE. Поэтому серьезные программеры не жалуют её из-за отсутствия оптимизации.
Но никто нам не запрещает использовать Ардуины как кусок текстолита с распаянными МК. Тобишь чисто железо. А программы писать в том компиляторе, где нам удобно. В этом весь смак. Вы можете и дальше писать в Atmel Studio и заливать скомпиленный hex в Arduino через штатный загрузчик. Я пользую программу XLoader для заливки своей прошивки в Arduino. При этом пишу прогу в Bascom'e. В платформе Arduino нет жесткой привязки ихнего софта и железа между собой, поэтому спокойно пользуем её как печатную плату с МК и разведенными ногами. |
Этот пользователь сказал Спасибо RUSHPIL за это полезное сообщение: |
24.07.2017, 23:05 | #11 |
Матёрый пользователь
Регистрация: 24.05.2010
Адрес: Херсон
Сообщений: 1,565
Вы сказали Спасибо: 871
Поблагодарили 695 раз(а) в 285 сообщениях
|
Я правильно понимаю - создать свои программку, отладить, а потом через стороннюю программу просто экспортнуть hex в МК? А не будет ли проблем с фьюзами или это уже неважно (в данном случае)?
На просторах гугла увидел еще вариант использовать ардуино как программатор. Интересная идея, если на борту вшитый МК. Хотя с другой стороны, можно ведь взять ардуино уно, менять МК (главное чтоб подходил) и прошивать как душе угодно?
__________________
хоп хэй лалалэй |
25.07.2017, 14:58 | #12 | ||
Лентяй и флудер
Регистрация: 10.04.2007
Адрес: Транссиб, 3339 км.
Сообщений: 5,658
Вы сказали Спасибо: 2,067
Поблагодарили 2,360 раз(а) в 784 сообщениях
|
Цитата:
Единственное, для Ардуино нет симулятора, как у Атмел/avr, тестить программы можно только в железе. Цитата:
__________________
🚆🚆🚆 Последний раз редактировалось E69; 25.07.2017 в 15:03. |
||
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Winamp велел всем жить долго. | E.depo | IT, компьютеры, электроника | 16 | 29.11.2013 23:55 |
установка дополнений: пропускать всё или заменять всё? | alevlaslo | TrainZ — Об игре | 18 | 24.08.2011 10:40 |
Тухнет сигнализация на всем маршруте | DAVID75 | MSTS - Маршруты | 6 | 05.11.2010 19:25 |
Обо всём, что может ещё понадобиться в законченном маршруте кроме КС, полотна и сигн. | NickLon | TrainZ - Маршруты и сценарии | 28 | 20.07.2008 07:08 |
Что это? |