roboforum.ru

Технический форум по робототехнике.


AVR на C/C++ программирование - вводный курс

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение =DeaD= » 30 июл 2008, 10:36

EdGull писал(а):специально будем порты брать не те которые в миниботе на ту или инную перефирию выведенные.

Да-да-да, и если ты короче следующего минибота под наши порты подгонишь - мы порты перепишем в курсе! :ROFL: :ROFL: :ROFL:

Добавлено спустя 1 минуту 45 секунд:
blindman писал(а):Мне например удобно запускать примеры на тех платах, что у меня есть, и не факт, что там свободны ноги, которые в миниботе выведены на ту или иную перефирию. А читающему будет полезно подумать, как адаптировать код к своему железу :wink:

Зашибись, автору курса чтобы удобно значит было, а читающему полезно подумать и адаптировать, может как-то всё с головы на ноги вернуть? Курс не для автора пишется, а для читателя.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение blindman » 30 июл 2008, 10:44

=DeaD= писал(а):Зашибись, автору курса чтобы удобно значит было, а читающему полезно подумать и адаптировать, может как-то всё с головы на ноги вернуть? Курс не для автора пишется, а для читателя.

И как узнать, какое железо у этого самого читателя?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение EdGull » 30 июл 2008, 10:48

И как узнать, какое железо у этого самого читателя?

Воооот!!! Наконец-то!!!
Вот для этого я и пытаюсь хоть как-то стандартизировать
Минибот на сегодняшний день какой-никакой, а стандарт :oops:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение =DeaD= » 30 июл 2008, 10:56

blindman писал(а):Какой еще хекс? :shock: Конечно, исходник, от хекса какая польза? А работать он будет на любом контроллере, где будут свободны те ноги, которые прописаны. И на любом другом, если чуть потрудиться и изменить порты.

Повторюсь:
=DeaD= писал(а):PS: К каждой задачке должен быть исходник для скачки, прошивка, файл для протеуса под этот урок в котором можно всё покрутить без реального МК. Ну и надо как-то будет вводную для протеуса написать тоже. Хотя я там с ходу вроде разобрался...


blindman писал(а):А что, уже достоверно известен тот факт, что у большинства есть минибот или планируется его приобретение?!! Или все-таки большинство будет использовать свою конструкцию? Почему надо ориентироваться на небольшое число тех, кто имеет минибота? Если цель создания такого курса - популяризация минибота - значит надо прямо об этом говорить и не морочить голову.

Я пока согласен с EdGull'ом - у нас никакого железа нет, у него есть, одна из моих задач, которые я решаю в своих загадочных целях - перевод минибота на си, поэтому я не вижу никаких проблем с тем, чтобы адаптировать свои примеры под минибота. Однако вам действительно прямо религия не позволяет участвовать в создании курса совместимого с конкретной платформой разошедшейся уже тиражом 36 экземпляров.

Добавлено спустя 1 минуту 46 секунд:
blindman писал(а):И как узнать, какое железо у этого самого читателя?

Смею предположить, что будет 2 варианта покрывающие 95% случаев:
1. Минибот (возможно в дальнейшем МиниботПро);
2. Solderless плата с воткнутым туда контроллером и прочими детальками по той схеме, которую мы скажем сделать в курсе;
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение EdGull » 30 июл 2008, 11:01

конкретной платформой разошедшейся уже тиражом 36 экземпляров.

уже больше, просто сейчас напрямую чере инет-магазин покупают.
на днях наведу порядок и обновлю карту ареала обитания миниботов
кстати, миниботы уже есть и в Украине :P
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение blindman » 30 июл 2008, 11:16

=DeaD= писал(а):Смею предположить, что будет 2 варианта покрывающие 95% случаев:
1. Минибот (возможно в дальнейшем МиниботПро);
2. Solderless плата с воткнутым туда контроллером и прочими детальками по той схеме, которую мы скажем сделать в курсе;

Я не имею ничего против собственно минибота. Но для учебных целей готовая платформа не очень удобна, если не завязываться конкретно на нее. Простой пример: в варианте 2 можно без проблем показать использование внешних прерываний. Как это сделать с миниботом? Выпаивать тсопы? Я потому и говорю, что или делать общий курс, ориентируясь на голый МК, или конкретно под минибота, но тогда уже называть вещи своими именами. И давайте вопросы религии оставим в стороне. Если я чего-то не хочу просто потому что не хочу - я об этом прямо говорю. Здесь же есть объективные причины.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение =DeaD= » 30 июл 2008, 11:26

blindman писал(а):Я не имею ничего против собственно минибота. Но для учебных целей готовая платформа не очень удобна, если не завязываться конкретно на нее.

Почему же неудобна? Массу вещей на ней можно сделать. Кому-то самому контроллер на solderless плате собирать неудобно будет. И что теперь?

blindman писал(а):Простой пример: в варианте 2 можно без проблем показать использование внешних прерываний. Как это сделать с миниботом? Выпаивать тсопы? Я потому и говорю, что или делать общий курс, ориентируясь на голый МК, или конкретно под минибота, но тогда уже называть вещи своими именами.

Есть такая поговорка "исключения только подтверждают правила", поэтому никто нам не мешает делать исключения и часть примеров сделать несовместимыми с миниботом, если это на миниботе показать невозможно.

blindman писал(а):Если я чего-то не хочу просто потому что не хочу - я об этом прямо говорю. Здесь же есть объективные причины.

Вот первую причину я услышал только что, до этого со стороны это выглядело просто как нежелание подстраиваться под минибота. Однако как я указал выше - не вижу почему мы не можем делать исключения и где-то реализовывать несовместимые с миниботом вещи.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение blindman » 30 июл 2008, 11:51

Давай посмотрим на минимальный план:
1. Мигаем светодиодом вкл\выкл тупо в цикле делая паузы;
2. В цикле получаем с входа состояние (скажем с кнопки) и показываем обратное состояние на светодиоде (на выходе);
3. Мигаем светодиодом по таймеру;
4. Мигаем светодиодом плавно (учим ШИМ) тупо в цикле;
5. Работаем с UART'ом (зажигаем светодиоды по команде с UART'а);
6. Показываем уровень напряжения на АЦП через UART, если он поменялся больше чем на 5% с предыдущего показа;
7. Считаем количество импульсов по внешнему и выводим их в UART при каждом импульсе;
8. Работаем с I2C (пишем в какую-нибудь память, например);
9. Ну внешнюю память еще можно погонять;

1. +
2. + подключаемся к разъему расширения
3. +
4. - выходы ШИМ заняты
5. +
6. - как к АЦП цепляться?
7. +/- смотря как считать. Программно - да, аппаратно - нет, заняты тактовые входы таймеров
8. +
9. -
и 10. - (внешние прерывания).

Не многовато исключений?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение =DeaD= » 30 июл 2008, 12:05

blindman писал(а):Давай посмотрим на минимальный план:
1. Мигаем светодиодом вкл\выкл тупо в цикле делая паузы;
2. В цикле получаем с входа состояние (скажем с кнопки) и показываем обратное состояние на светодиоде (на выходе);
3. Мигаем светодиодом по таймеру;
4. Мигаем светодиодом плавно (учим ШИМ) тупо в цикле;
5. Работаем с UART'ом (зажигаем светодиоды по команде с UART'а);
6. Показываем уровень напряжения на АЦП через UART, если он поменялся больше чем на 5% с предыдущего показа;
7. Считаем количество импульсов по внешнему и выводим их в UART при каждом импульсе;
8. Работаем с I2C (пишем в какую-нибудь память, например);
9. Ну внешнюю память еще можно погонять;

1. +
2. + подключаемся к разъему расширения
3. +
4. - выходы ШИМ заняты
5. +
6. - как к АЦП цепляться?
7. +/- смотря как считать. Программно - да, аппаратно - нет, заняты тактовые входы таймеров
8. +
9. -
и 10. - (внешние прерывания).

Ну наконец-то нормальный аргументированный разговор пошел :)

2EdGull и владельцы миниботов: А есть где-то нормальный расклад по ногам контроллера минибота - на какую что подвешено? А то общую схему смотреть в плохом разрешении выложенную где все проводки в шину объединяются - как то глаз плющит, или у меня одного такие проблемы?

4. Выходы шим заняты - какая разница что будет - или моторчик будет плавно стартовать и завершать вращение или светодиод мигать?

7. Считать можно вращение колеса или что там заведено на внешнее прерывание?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение EdGull » 30 июл 2008, 12:08

4. - выходы ШИМ заняты

ципляемся паралельно движкам или вместо динамика
6. - как к АЦП цепляться?

вместо фототранзисторов или сразу меряем напругу своего акб
10. - (внешние прерывания).

ТСОП чем тебе не внешнее прерывание или кнопка вместо него?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение blindman » 30 июл 2008, 12:24

То есть вооружаемся паяльником и начинаем что-то выпаивать и запаивать. Предварительно изучив схему и рисунок платы, чтобы понять, где расположен фототранзистор, подключенный к нужной ноге.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение EdGull » 30 июл 2008, 12:27

вот вам светодиоды для первого урока
PortC.4
PortC.5
PortC.6
PortC.7

Добавлено спустя 1 минуту 53 секунды:
blindman писал(а):То есть вооружаемся паяльником и начинаем что-то выпаивать и запаивать. Предварительно изучив схему и рисунок платы, чтобы понять, где расположен фототранзистор, подключенный к нужной ноге.

нинадо ничего выпаивать, минибот поставляется с незапаянными
ИК-фототранзисторами
ИК-светодиодами
ТСОПы ващеидут отдельной позицией
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение Myp » 30 июл 2008, 13:02

какова вероятность что у человека дома нету пульта ДУ чтобы он не смог направит его в миниботовский тсоп и не вызвать этим действием прерывание ?:)


во вторых
почему сразу в первом вводном уроке не объяснить про дефайны
и уже потом в следующих уроках использовать ноги минибота
у кого нет минибота сможет изменив всего пару символов передэфайнить прогу на любую другую ногу...
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение =DeaD= » 30 июл 2008, 13:06

Чего-то параллельно цеплять или запаивать в минибот - как-то незачетно получается, с ходу барьер не берется, поэтому пожалуй будем действовать последовательно.

Предлагаю так - сделать пока просто курс по Си, после написания посмотреть какие вещи можно сделать под минибота и адаптировать их под минибота. Возможно сделать 2 разных курса придется, чтобы удобнее было, пока не знаю.

Добавлено спустя 55 секунд:
Myp писал(а):какова вероятность что у человека дома нету пульта ДУ чтобы он не смог направит его в миниботовский тсоп и не вызвать этим действием прерывание ?:)

Ты еще скажи что нужные TSOPы на углу валяются.


Myp писал(а):во вторых
почему сразу в первом вводном уроке не объяснить про дефайны
и уже потом в следующих уроках использовать ноги минибота
у кого нет минибота сможет изменив всего пару символов передэфайнить прогу на любую другую ногу...

Потому что нефиг мутить перед новичками, им бы разобраться в основах, а вы сразу им дефайны и подмену ног...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Вводный курс для программирования МК AVR на языке C/C++

Сообщение EdGull » 30 июл 2008, 13:20

Ты еще скажи что нужные TSOPы на углу валяются.

у меня их мешок лежит, специально для вас покупал
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5