[image]

Микроконтроллеры AVR - применение и Краткий Курс - часть 10

 
1 23 24 25 26 27 38
UA Non-conformist #30.03.2013 14:12  @GOGI#30.03.2013 13:14
+
-
edit
 

Non-conformist

аксакал

Та да, а чёж нет.

Только большая просьба: закомментируй поподробнее каждую строчку! Бо тоскливо совсем, когда нифига не понимаю, что написано. И если можно, выдели абзацами (или как-то иначе) относящееся к кнопке, к пищалке, к записи в память, к чтению памяти. Если это, конечно, возможно.
   
UA Non-conformist #30.03.2013 15:10  @Non-conformist#30.03.2013 14:12
+
-
edit
 

Non-conformist

аксакал

Non-conformist> И если можно, выдели абзацами (или как-то иначе) относящееся к кнопке, к пищалке, к записи в память, к чтению памяти. Если это, конечно, возможно.
Можно ли выделить из текста программы некие унифицированные куски, из которых можно было бы составить подобие уже своей простейшей программы, которая бы нормально компилировалась и работала?

Например: нажал кнопку - включилась лампочка, отпустил - погасла. Или: нажал-отпустил - включилась, нажал-отпустил - погасла. Как подобное написать самому? Не мог бы ты порекомендовать какую-то книжку, где подобное было бы доходчиво описано? Типа какая-нибудь "Азбука С" или что-то такое? Именно применительно к МК?
   

Xan

координатор

GOGI> Если включить с зажатой кнопкой, то

Вот это я ненавижу!!! :D
Хотя понимаю, что погромисту это легче всего сделать.
Но юзарю удобнее по длительности нажатия кнопки (если кнопок мало) — делается одним пальцем, а не двумя руками.
   9.09.0
UA Non-conformist #30.03.2013 16:14  @Xan#30.03.2013 15:15
+
-
edit
 

Non-conformist

аксакал

Справедливо, но для теста на несколько дней и с зажатой кнопкой сойдёт. Весьма неудобно конечно, но если сильно сложно по-другому, то готов страдать во имя прогресса.
   
UA Non-conformist #30.03.2013 16:42  @Non-conformist#30.03.2013 15:10
+
-
edit
 

Non-conformist

аксакал

Non-conformist> Типа какая-нибудь "Азбука С" или что-то такое? Именно применительно к МК?

WinAVR и AVR Studio - справочное руководство

Простые устройства: сделай же хоть что-нибудь! // www.simple-devices.ru
 

Вот если бы ещё что-то такое для IAR, было бы вообще хорошо.
   
KZ Xan #30.03.2013 16:45  @Non-conformist#30.03.2013 15:10
+
-
edit
 

Xan

координатор

Non-conformist> Типа какая-нибудь "Азбука С"

"Искусство программирования" Кнут. Трёхтомник. :)
Там описание алгоритмов решения разных задач.
Конечно, много лишнего для начинающего. :)
И кое чего нет. Например, про конечные автоматы.
А все поделки на МК = конечные автоматы. И прежде чем их программировать, надо знать, а что же программируешь. :)

Ну и надо понимать, что программирование = это рисование на бумажке блок-схем или диаграмм состояния конечного автомата. А не набивание кода на конкретном языке.

Отличие такое же, как рисование чертежей и расчёт конструкции против кования железки конкретными инструментами.

Non-conformist> некие унифицированные куски, из которых можно было бы составить подобие уже своей простейшей программы

Надо использовать чужие библиотеки. Предварительно изучив.
Или наработать своё.

Например, у меня есть "драйвер клавиатуры" (для нескольких одиночных кнопок, не для матрицы). Занимается тем, что подавляет дребезг кнопок и выдаёт на выходе состояние нажатости каждой кнопки, а также события "стала нажатой" и "стала отпущенной".
"Питается" это штука от "системных часов", которые в свою очередь движутся прерываниями железного таймера.
Ну и т.д.
Всё это внутри самодельной ОС типа "хоровод".

Но у тебя, как я понимаю, другая ОС.

Что-то я растёкся по древу! :)
   9.09.0
UA Non-conformist #30.03.2013 22:50  @Xan#30.03.2013 16:45
+
-
edit
 

Non-conformist

аксакал

Xan> "Искусство программирования" Кнут. Трёхтомник. :)
Не, инженером-программистом я уже не стану, лет на тридцать опоздамши. А вот не хватающим с неба звёзд слесарем-эмбедером имхо ещё можно попытаться заделаться. ))

Что надо - выбрать какой-нибудь конкретный АВР (вроде уже выбрал), и потихоньку изучить, как к нему подключать типовую обвеску: датчики аналоговые, датчики цифровые, кнопки, энкодеры, индикаторы. И чтобы всё это друг с другом взаимодействовало по каким-то ординарным, незамысловатым алгоритмам: прочитал байт с датчика, что-то там с ним арифметическое сделал - вывел на индикатор, либо дёрнул какой-нибудь ногой... Как-то так.

Xan> Ну и надо понимать, что программирование = это рисование на бумажке блок-схем или диаграмм состояния конечного автомата. А не набивание кода на конкретном языке.
Ну, своё вИдение я описал выше. Компиляция готовых решений, не более. Просто научиться правильно склеивать между собой куски (библиотечного) кода. Чисто слесарное занятие - именно что отковать железку по готовым эскизам.
   
RU GOGI #01.04.2013 06:35  @Non-conformist#30.03.2013 15:10
+
-
edit
 
Non-conformist> Например: нажал кнопку - включилась лампочка, отпустил - погасла. Или: нажал-отпустил - включилась, нажал-отпустил - погасла. Как подобное написать самому?
Начать нужно с даташита на контроллер. Лучше найди на русском, не обязательно на твой, можно на другую мегу, они практически один в один.
Потом почитать и попробовать что-то типа этого:

все пять страниц. Там правда, GCC а не IAR C компилятор, но на самом деле это не принципиально.
Очень полезны апноуты атмеловские.
Ну и для начала сам Си надо изучить. Не должно быть такого, что ты видишь строчку на Си и не понимаешь, что она делает. Можешь не понимать зачем, но что должен понимать.
   19.019.0
UA Non-conformist #01.04.2013 17:49  @GOGI#01.04.2013 06:35
+
-
edit
 

Non-conformist

аксакал

Спасибо, читаю.

***
Ну так что там получается с тестовой программой?
   
Ну никак не раньше пятницы. Я этим делом только на работе могу, а вторник-среда плотно заняты.
   19.019.0
KZ Xan #01.04.2013 20:13  @Non-conformist#01.04.2013 17:49
+
-
edit
 

Xan

координатор

Non-conformist>

Классика по Си — Керниган и Ричи.
Для мелких задач на МК достаточно знать:
типы переменных, без указателей, и, максимум, одномерные массивы;
условные операторы;
некоторые "заклинания", вроде #define.

В случае чего, поиском по файлу "Керниган и Ричи" можно найти непонятное и понять.

Как мне кажется! :)
   9.09.0
UA Non-conformist #01.04.2013 21:31  @Xan#01.04.2013 20:13
+
-
edit
 
UA Non-conformist #02.04.2013 13:43  @Non-conformist#01.04.2013 21:31
+
+1
-
edit
 

Non-conformist

аксакал

Пока делать особо нечего... Небольшая презентация, информирующая о текущем состоянии проекта:

__________________
   
02.04.2013 13:53, Sharovar: +1: "To Space we thrust" (-:
UA Костян1979 #02.04.2013 18:42  @Non-conformist#02.04.2013 13:43
+
-
edit
 

Костян1979

опытный

Non-conformist> Пока делать особо нечего... Небольшая презентация, информирующая о текущем состоянии проекта:
Даааа... , на заводах делают похуже , молодчина.
   
UA Non-conformist #02.04.2013 19:57  @Костян1979#02.04.2013 18:42
+
+1
-
edit
 

Non-conformist

аксакал

Sharovar> ...
Костян1979> ...
Спасибо за высокую оценку!

Будет ещё красивее; сейчас пока на соплях всё, плата колом прикручена... Если заработает, как надо - б** покрашу! Баллончиком! ))
   
UA Voldemar #02.04.2013 23:48  @Non-conformist#02.04.2013 19:57
+
-
edit
 

Voldemar

опытный

Non-conformist> Будет ещё красивее;
Красивее уже некуда! :)
> покрашу! Баллончиком! ))
Только портить. Это особая красота - техническая.
***
Не хотелось бы накаркать, но всё же, может быть, перегородочку придумать между мотором и платой...
   3.5.193.5.19
UA Non-conformist #03.04.2013 08:44  @Voldemar#02.04.2013 23:48
+
-
edit
 

Non-conformist

аксакал

Voldemar> ...
Спасибо за отзыв!

Voldemar> Не хотелось бы накаркать, но всё же, может быть, перегородочку придумать между мотором и платой...
Так она там уже есть, два миллиметра толщиной. На ролике кросс-плата (которая большая) прикручена в тестовом положении, так, чтобы для наладки был доступен усилитель. А в штатном положении плата будет лежать на пластинке, прикрученная четырьмя винтами, а не торчать под прямым к ней углом. Т.е. приваренная к раме пластинка-кронштейн будет по совместительству выполнять роль защиты, т.к. мотор по отношению к плате оказывается по другую от неё сторону.
   
UA Serge77 #03.04.2013 14:46  @Non-conformist#03.04.2013 08:44
+
-
edit
 

Serge77

модератор

Voldemar>> перегородочку придумать между мотором и платой...

Нужна герметичная коробка, чтобы от дыма защищать. Дым и в штатной ситуации будет везде, а он же электролит.
   3.0.193.0.19
UA Non-conformist #03.04.2013 15:18  @Serge77#03.04.2013 14:46
+
-
edit
 

Non-conformist

аксакал

Voldemar>>> перегородочку придумать между мотором и платой...
Serge77> Нужна герметичная коробка, чтобы от дыма защищать. Дым и в штатной ситуации будет везде, а он же электролит.
А вот тут куда проще банальным кульком замотать. К тому же платы будут покрыты специальным защитным лаком.

Герметичная коробка (даже условно герметичная) - имхо сильно заморочно, учитывая количество кабелей из неё выходящих, необходимость частого и быстрого доступа к плате, а также общую неопределённость судьбы (экспериментальность) всей конструкции.

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

Возникает также сомнение в самой возможности получения информативного видео в отсутствие достаточно мощной принудительной вытяжки.
   
Начал писать, протеус виснет насмерть на симуляции. Качаю новый :)
P.S. - у меня, однажды, помню, Bascom на компиляции! вис. Вот такой я мощный код пишу.
   19.019.0
UA Non-conformist #03.04.2013 20:02  @GOGI#03.04.2013 17:26
+
-
edit
 

Non-conformist

аксакал

GOGI> Вот такой я мощный код пишу.
Да пребудет с тобой Сила! (С)
зы: Я уж вижу, что в папке файлами шурудишь. На серцi радiсно-радiсно...
   
UA Non-conformist #03.04.2013 20:12  @Non-conformist#03.04.2013 15:18
+
-
edit
 

Non-conformist

аксакал

Voldemar>>>> перегородочку придумать между мотором и платой...
Serge77>> Нужна герметичная коробка, чтобы от дыма защищать. Дым и в штатной ситуации будет везде, а он же электролит.
А что если вверх ногами пепелац перевернуть? Мотор-то твердотопливный, ему всё равно куда гравитация тянет. Никаких кульков тебе и солидолов... Вертикаль - она и есть вертикаль - что снизу вверх, что сверху вниз... По крайней мере в первом приближении.

Сначала добиться, чтобы в перевёрнутом положении всё работало как положено - а там уже можно и в штатное переворачивать, солидолом мазать, кульками обматывать...
   
UA Voldemar #03.04.2013 20:40  @Non-conformist#03.04.2013 20:12
+
-
edit
 

Voldemar

опытный

Non-conformist> Serge77>> Нужна герметичная коробка,
Провода медные, которые на воспламенитель, отрезаю понемногу, как в выхлоп попали, чёрные становятся, т.е. да, дым едучий.
Non-conformist> А что если вверх ногами пепелац перевернуть?
Если будет небольшой ветер, проблем вроде быть не должно. А ветер в поле есть почти всегда.
   3.5.193.5.19
В симуляцией АЦП AVR во free-running mode какая-то полная засада. Proteus конкретно виснет на нем, а AVR studio его издавна неправильно симулирует.
Но мы это, не сдаемся. Сейчас мне надо приемную программку написать, которая из порта данные будет принимать, после этого можно будет пробовать.
Алексей, у тебя есть возможность вместо усилителя тензомоста на вход АЦП резистивный делитель подцепить для отладки?
   19.019.0
UA Non-conformist #05.04.2013 15:04  @GOGI#05.04.2013 14:19
+
-
edit
 

Non-conformist

аксакал

Надо - подцепим. Только сейчас скажи, какой именно, чтобы я подобрал нужные деталики. Может лучше потенциометр вместо делителя? Есть многооборотные, с червяком внутри.

С другой стороны - а чем пластикобутылочный разновесок не устраивает? Система-то полностью рабочая уже. Эталонный килограмм могу одолжить на работе. Тензокардан у меня сейчас дома - можно будет на выходных поковыряться.
   
1 23 24 25 26 27 38

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru