roboforum.ru

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

МикроКонтроллер AVR начинающим - общие вопросы

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

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Mazayac » 17 авг 2008, 11:24

Более интересна разводка платы, либо порядок соединения питающих проводов (общие, плюс контроллера, плюс двигателей), если собрано на макетке.
Схема впрочем тоже сойдет, на ней можно показать, как должны идти шины питания.
Аватара пользователя
Mazayac
 
Сообщения: 377
Зарегистрирован: 25 апр 2008, 17:40
Откуда: Нижний Новгород
ФИО: Непочатов Алексей Николаевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 17 авг 2008, 12:31

Наверно диода быстрого перед МК не хватает.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение loid » 17 авг 2008, 13:31

А вот схемка моего бота. Не пинать, как смог так навоял :D
На схеме очепятка, слева на стабилизатор подается не5 вольт, а 12.
Вложения
bot.JPG
Аватара пользователя
loid
 
Сообщения: 349
Зарегистрирован: 16 окт 2007, 11:57
Откуда: Минycинck

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение EdGull » 17 авг 2008, 13:42

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

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 17 авг 2008, 17:16

loid писал(а):А вот схемка моего бота. Не пинать, как смог так навоял :D
На схеме очепятка, слева на стабилизатор подается не5 вольт, а 12.

Чеж ни конденсатора ни диода на питании МК нетути ?

Советую почитать:
Правильное питание - http://avr123.nm.ru/01.htm
Правильное подключение RESET - http://avr123.nm.ru/07.htm

Рисуйте схемы в PROTEUS http://proteus123.narod.ru/01.htm - в нем же можно проверить их работу.

Добавлено спустя 5 минут 21 секунду:
EdGull писал(а):что за строеный диод?

Как ты определил что "строеный", а не просто 3 диода ? :shock:
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Mazayac » 18 авг 2008, 00:28

loid писал(а):А вот схемка моего бота.

1. Нет обязательных блокировочных конденсаторов ни у микросхемы стабилизатора (на входе и на выходе), ни у микроконтроллера
7805.gif
7805.gif (3.07 КиБ) Просмотров: 2355

C1 и С2 могут понадобиться бОльшей емкости (до 10мкФ, например), в зависимости от требований производителя микросхемы.
2. Не вижу, как подключен вывод Reset у Атмеги
Reset.gif
Reset.gif (2.15 КиБ) Просмотров: 2353

3. + и - 12 вольт на L293 и на 7805 как подводятся?
Power_connect.gif
Power_connect.gif (9.24 КиБ) Просмотров: 2356

4. На каждый из трех светодиодов нужен свой токоограничительный резистор
HL1-3.gif
HL1-3.gif (5.14 КиБ) Просмотров: 2353

5. Странные какие-то фотодатчики. Почему бы не сделать их по общепринятой схеме?
Optosensor.gif
Optosensor.gif (2.78 КиБ) Просмотров: 2359
Аватара пользователя
Mazayac
 
Сообщения: 377
Зарегистрирован: 25 апр 2008, 17:40
Откуда: Нижний Новгород
ФИО: Непочатов Алексей Николаевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение loid » 18 авг 2008, 15:37

Спасибо что ткнули носом :) Что не правильно - сиправлю и в путь! Снова к испытаниям.
Фотодатчики и правда странные :D - это оптика из мыши, обвязку делал сам - вот так и получилось.
Аватара пользователя
loid
 
Сообщения: 349
Зарегистрирован: 16 окт 2007, 11:57
Откуда: Минycинck

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 23 авг 2008, 22:08

Подскажите, пожалуйста.
В CVAVR как сделать, чтоб вместо звёздочки могла бы быть любая цифра:
if (a==***8) {...}
или
if (a==*6**) {...}
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Сергей » 23 авг 2008, 22:15

Здесь поможет только особая уличная магия :D А если серьезно то нефкурил что нужно то :)
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 23 авг 2008, 22:22

regenerator писал(а):Подскажите, пожалуйста.
В CVAVR как сделать, чтоб вместо звёздочки могла бы быть любая цифра:
if (a==***8) {...}
или
if (a==*6**) {...}


Потребуются операции целочисленного деления, возвращающие частное (пусть это "/") и остаток (это всегда %), посмотри в справочнике как правильно вызвать целочисленное деление без округление, чтобы от деления было только частное в классическом понимании.

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

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 23 авг 2008, 22:49

Ой как всё не просто.
Если правильно понял, то можно по аналогии, да?
Например:
(a==***********2) расписывается как (a%10==2)
(a==****5********) расписывается как ((a%10000000000000)/100000000==5)
Последний раз редактировалось regenerator 23 авг 2008, 22:56, всего редактировалось 1 раз.
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 23 авг 2008, 22:49

regenerator писал(а):(a==***********2) расписывается как (a%10==2)
- да

regenerator писал(а):(a==****5********) расписывается как ((a%10000000000000)/100000000==5)
- нет, правильно:
(a==****5********) расписывается как ((a%1000000000)/100000000==5), т.е. после "%" - 1 с K+1 нулями, а после "/" - 1 с K нулями, если после цифры стоит K звёздочек.

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

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 00:15

Спасибо, понял. :)
А, и ещё:
как в той же среде инвертировать все биты регистра PORTC, если содержимое этого регистра динамически изменяется?

Добавлено спустя 1 час 19 минут 11 секунд:
А если так:
if (a==**43***)
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 24 авг 2008, 00:22

regenerator писал(а):А если так:
if (a==**43***)

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

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение regenerator » 24 авг 2008, 00:50

Не понял зачем ~= перед if ?
Лучший способ запомнить что нибудь — постараться это забыть.
regenerator
 
Сообщения: 50
Зарегистрирован: 28 май 2008, 21:56
Откуда: планета Земля
прог. языки: Паскаль, Си.

Пред.След.

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

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

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