С чего начать программировать микроконтроллеры?

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Аватара пользователя
Пухич
Модератор
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

На сколько их хватит?


Согласуйте с ТУ. :)

Хотя, если есть возмога, я бы их заменил на полупровода.

Да где-же я в металлоцехе сталь-то найду?


Ну это смотря какого металла у вас цех. :)))

Может вы по латуни..... :)

А что называется антидребезгом? И как он реализуется?


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

Код я выложил ниже, может кто скажет причину?


Вот чего вы на ассемблере не пишете. :(
Знание - сила!
Реклама
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18854
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Пухич писал(а):Вот чего вы на ассемблере не пишете. :(

Вот только ассемблера мне и не хватало :) Зачем мне это парево?
Реклама
Аватара пользователя
Пухич
Модератор
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Вот только ассемблера мне и не хватало Smile Зачем мне это парево?


А мне вот СИшные проги для АВР читать нелегко. Я просто не вижу прямого преобразования в ассемблер, и это меня попугивает.

Хотя вообще была мысль начать пробовать Си для АВР. И даже была у меня идея изучить ВинАВР (пусть ARV позлится :) ), но пока времени нет. На ассемблере быстрее писать всякие мини-прожки.
Знание - сила!
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

ИМХО программировать надо на том, что лучше знаешь. Языки высокого уровня хороши тем, что на всех платформах синтаксис и способы программирования одинаковы - не надо переучиваться каждый раз. Но если работаешь на 1-2 платформах и требуется в основном (или хочется) компактного и быстрого кода, то лучше на машинно-ориентированных языках.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
NiTr0
Друг Кота
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua
Контактная информация:

Сообщение NiTr0 »

DrWatson писал(а):Языки высокого уровня хороши тем, что на всех платформах синтаксис и способы программирования одинаковы - не надо переучиваться каждый раз.


Не совсем так. Тот же си для пиков (уже не помню компилятор) - весьма специфичная вещь, кастрированная под архитектуру проца, реально - натянутые на асм С-комманды. Нередки ошибки типа "выражение правильно, но я его скомпилировать не могу - упростите" :)))
Реклама
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Ну это уже на совести разработчиков компилятора. Истинного Си сейчас наверно уже не найдешь.
А насчет ПИКов, спасибо, что просветил. Я только по АВР пользую, как-то он мне приглянулся.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Реклама
Аватара пользователя
Барсик
Друг Кота
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

Ой, бля.............. Ну скока можно??????????????????????
Пойду, лучше выпью йаду.................
Аватара пользователя
бгкот
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Пт фев 20, 2009 21:45:04
Откуда: Болгария
Контактная информация:

Сообщение бгкот »

Пухич писал(а): На ассемблере быстрее писать всякие мини-прожки.

А мне, всякие мини-прожки быстрее писать на бейсике :))
©"Good indian is dead one!"
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Примеры:
1) собрал я зарядку для аккумов на тини13, начал писать прогу на си. заготовку набросал, откомпилил и понял - надо на асме, иначе не влезет.
2) делал часы с календарем и будильником на тини2313 с LCD в CVAVR (может и изврат, но использовал родные его библиотеки), в итоге полдня оптимизировал исходник, влезло тютелька в тютельку.
3) часы с календарем, таймером, термометрами, LCD на Mega8515 в том же CVAVR с родными библиотеками - треть Flash свободна. Можно и на бейсике писать - влезет.
А вот контроллер дисплея на Меге делают на асме - потому как это применение критично к времени выполнения команд, а отследить это легче на асме.
Писать надо на чем удобнее и быстрее, в зависимости от поставленных задач и имеющихся возможностей.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Аватара пользователя
suslogon
Друг Кота
Сообщения: 10693
Зарегистрирован: Пн июл 14, 2008 21:28:00
Откуда: Москва
Контактная информация:

Сообщение suslogon »

полностью согласен..нам в инсте так и говорят :)
Ищу тиратрон ТХИ1-2000/4, ГРИ ИН-23, ФЭУ-103; 134; 135, 138, 155, 157, лампу ИСШ-7.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

а как подключить матрицу светодиодную к МК? а то я посчитал выводы для динамической индикации 2х матриц 8х8, мне надо 5целых портов. это многовато...
как сделать по другому?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Достаточно 3х портов. А если использовать внешние регистры с последовательной загрузкой, то хватит и 3х ног, но это лишние 3 корпуса.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18854
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Пухич писал(а):На ассемблере быстрее писать всякие мини-прожки.

Только не для новичка. Если нет глубокого знания МК, то написание проги на ассемблере, это долгая и кропотливая работа. Для этого надо весь даташит знать наизусть.
Аватара пользователя
NiTr0
Друг Кота
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua
Контактная информация:

Сообщение NiTr0 »

SeregaT писал(а):
Пухич писал(а):На ассемблере быстрее писать всякие мини-прожки.

Только не для новичка. Если нет глубокого знания МК, то написание проги на ассемблере, это долгая и кропотливая работа. Для этого надо весь даташит знать наизусть.

Аж никак. Знать систему комманд + регистры (с альт ф-ями).
Остальное - нужно знать в той же мере, в какой и для С.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18854
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Ну не знаю, мне Си удобнее. Если к примеру вывести надпись на LCD, то на Си я пишу саму надпись и вывожу её, на ассемблере это не так. Если сделать задержку, на Си я просто пишу сколько миллисекунд или микросекунд, а не высчитываю количество тактов для каждой задержки как на ассемблере. Ну и в остальном практически так-же.
Аватара пользователя
NiTr0
Друг Кота
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua
Контактная информация:

Сообщение NiTr0 »

SeregaT писал(а):Ну не знаю, мне Си удобнее. Если к примеру вывести надпись на LCD, то на Си я пишу саму надпись и вывожу её, на ассемблере это не так.


Так же :) процедура вывода строк, которой передается указатель на строку в оперативке или в флэше.

SeregaT писал(а):Если сделать задержку, на Си я просто пишу сколько миллисекунд или микросекунд, а не высчитываю количество тактов для каждой задержки как на ассемблере.


Проблемно сделать процедуру задержки на нужное кол-во тактов? :)
А вообще - я стараюсь по возможности все задержки делать таймерами.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18854
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Такой вот вопрос.
Если я переменную объявляю вот таким образом: eeprom unsigned int a;
то значение этой переменной (а так-же каждое её изменение) записывается в eeprom. Но количество перезаписей eeprom ограничено. Какой командой можно записать значение переменной в eeprom например при нажатии кнопки "сохранить"?
Аватара пользователя
NiTr0
Друг Кота
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua
Контактная информация:

Сообщение NiTr0 »

Никакой. Делать 2 отдельных переменных. Одна - еепром, другая - в памяти.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18854
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

NiTr0 писал(а):Делать 2 отдельных переменных. Одна - еепром, другая - в памяти.

Ага, понял. А потом просто присваивать значение одной переменной равное другой?
P.S. А если этого не делать, вот к примеру переменная объявлена как eeprom и нужно прибавляя по 1 изменить значение переменной скажем с 10 до 1000. То есть мы перезапишем память eeprom 990 раз? Это значит 100 таких изменений и МК на помойку? Или не так всё плохо?
Аватара пользователя
Pika4u
Поставщик валерьянки для Кота
Сообщения: 2064
Зарегистрирован: Пт апр 24, 2009 11:39:16
Откуда: г.Оренбург

Сообщение Pika4u »

Ещё вопрос: Если мне надо будет только залить готовую прошивку в МК, мне можно будет со спокойным сердцем делать 5 проводков? Кстати: у меня есть прошивка(HEX фаил итд). Что дальше делать батник? И какую программу лучше взять для залития?
Ответить

Вернуться в «Теория»