Форум по микроконтроллерам: Помогите новичку. С чего начинать? - Форум по микроконтроллерам

Перейти к содержимому

  • 2 Страниц +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Помогите новичку. С чего начинать?

#1 Гость_SpawNBK_*

  • Группа: Гости

Отправлено 24 Январь 2014 - 15:58

Здравствуйте, уважаемые форумчане. Мне 24 года, программист по образованию.
Очень зацепила тема создания своих устройств. Подскажите мне пожалуйста, какие выбирать чипы, где их заказывать, чем их программировать. В этой теме я вообще 0))) Если можете, скиньте ссылки на статьи. Начинаю все с полного нуля!!! спасибо вам большое!!)

#2 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 24 Январь 2014 - 16:12

Вам тут насоветуют. :D
Лично мое. Как один из вариантов.
Микроконтроллеры Микрочип. Покупаются практически везде, конечно не очень современные. Но не в этом суть.
Под них много средств разработок и компиляторов для Си. Можно приобрести внутрисхемные отладчики/программаторы.
Таким образом. Выбирать конечно мк нужно под задачу и не очень древний. И изучать матчасть этого камня. Если Вы знаете Си, то будет проще. Если не знаете, то лучше начать с ассемблера.
Большой выбор контроллеров и средств разработки http://www.trt.ru/
Там же можно много почитать для начала
http://www.trt.ru/products/microchip/prog2.htm
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#3 Пользователь офлайн   Алексашка 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 311
  • Регистрация: 26 Апрель 13
  • ГородМирный, РС (Якутия)

Отправлено 25 Январь 2014 - 14:01

я начинал 2 года назад, с самоучителя Корабельникова Е.А., и пик 16F84A, на данный момент лежит кучка пиков 16 серии, а я перешел на 18пики, чуть сложнее, но всё компенсируется наличием новых команд, идеи начнутся по мере изучения, для простых задач начните с изучения пиков 16 серии, программатор которым пользуюсь PICKIT2 (есть и PICKIT3), в нете есть описание на русском языке программатора, интерфейс USB, далее можно зарегится на сайте http://samouch.chipmk.ru/, хороший сайт с самоучителем 18 серии, но написано немного сложно, даже для знакомого с пиками.
0

#4 Пользователь офлайн   Алексашка 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 311
  • Регистрация: 26 Апрель 13
  • ГородМирный, РС (Якутия)

Отправлено 25 Январь 2014 - 14:05

начальные знания с которыми начинал изучать пики это как работает биполярный транзистор, и что такое диод. в общем полный 0. образование электромеханик, электроника только хобби
0

#5 Гость_trex_*

  • Группа: Гости

Отправлено 27 Август 2014 - 14:58

Здравствуйте всем!
Наконец то я активировал аккаунт.
Alex - спасибо за ответ. Придется самому вникать и пробовать писать как то.
Алексашка - прочитал пол книги. Много воды. Но в целом почти понятно. Спасибо за наводку.
Значит, пытаюсь не имея никакого опыта, написать прошивку управляемого генератора прямоуг.импул. с рег.частоты и скважностью. На PIC12F675.
Теперь вопросы:
ПРОШИВКА.
__CONFIG - это начальная или стартовая конфигурация МК. Точнее общие настройки. Верно?
К примеру PWR_ON - при подключении батарейки МК сразу начинает крутить прогу. Верно?
Далее идут настройки для исполнения програмного кода. Верно?
Далее идет сама программа и в ней ссылки на подпрограммы(ПП). Верно? Или ПП уже прописывается(пишется) здесь же в программе?
Хочу понять общий смысл написания прошивки в моем случае.
Примерно так(своими словами)
....программа....
*записать значение из(адреса ХХh) епром в оперативку ;а дальше надо как я думаю расчитать, внутреннюю частоту(это 4МГц разделенную на 4(так и не понял почему)) 1МГц=1000Гц разделить на частоту нашу в оперативке. Например 100Гц - это каждый 10-й круг программы, нога(допустим 2-я) будет переходить в состояние лог.1(соединяться с +5 питания V-in), на какое то время. Наверное это и есть время задержки? Вот тут нужна помощь. Непонял на что "оно" опирается и как его изменять? Я думаю это и есть скважность и изменять я ее предполагаю двумя кнопками. Далее...
....опрос кнопок....
*опрос состояния кнопки 1 +1* ;кнопка частоты +
___если кнопка нажата (преход на строчку подпрограммы);здесь ПП складывает частоту сейчас и +1
___если нет, переход на опрос кнопки 2
*опрос состояния кнопки 2 -1* ;кнопка частоты -
___если кнопка нажата (преход на строчку ПП);здесь ПП складывает частоту сейчас и -1
___если нет, переход на опрос кнопки 3
*опрос состояния кнопки 3 +1* ;кнопка скважности +
___если кнопка нажата (преход на строчку ПП);здесь ПП складывает скважность сейчас и +1
___если нет, переход на опрос кнопки 4
*опрос состояния кнопки 4 -1* ;кнопка скважности -
___если кнопка нажата (преход на строчку ПП);здесь ПП складывает скважность сейчас и -1
___если нет, переход на следующую строку
___переход на опрос кнопки 5
*опрос состояния кнопки 5 -1* ;кнопка off/on
___если кнопка нажата (преход на строчку ПП);здесь ПП переход на подпрог. записи в епром, переход в sleep. Фактически ПП перезаписывает в епроме какое то число по какому то адресу и переходит в ПП sleep. Правильно я понял? А сброс WDT пройдет сам, на сколько я понял.
___если нет, сброс WDT
___переход в начало программы ;точнее в ту строчку программы, где работает генератор. Без перезаписи оперативки из епрома.
....
Что такое:";здесь подпрог. складывает частоту/скважность сейчас и -1/+1"- как я это понял. ПП забирает число(значение частоты из оперативки), прибавляет число(которое я прописал как константу, допустим 0,5) и записывает результат обратно в оперативку. И при следующем круге прога читает не 100Гц, а 100,5Гц. Тоже туманно понимаю как это? Математически не сходится.

Прошу понять. Что я хочу понять общее представление как это работает или как это должно быть. Вид прошивки "на бумаге". Позже, я заменю русские слова командами асма, мне так понятней на этом этапе.
А стойте время(скважность) можно организовать командой NOP(команда пустышка). А кнопки +/- скважность добавят/убавят колличество пустышек, точнее, колличестко исполнений. Так? Вопрос, сколько времени уходит на исполнение в микросекундах?
Ладно, копаемся дальше...

Ну и как то, что бы понимали мои способности и познания. Как со мной говорить, да что бы до меня, дурака, дОшлО.
Изучение HTML - один день. На второй день я не напрягаясь собирал не простые и не сложные страницы с фреймами и через три дня "рыл" флеши. Надоело, бросил.
Асемблер. Это где-то 10 лет назад. Первый день понимание. Второй день к вечеру "пАшшол На Х.. WORLD", да да так и написал. И через две недели, "наигравшись", написал нужный мне тогда авторун-браузер для СД-диска. На этом нужда в асме у меня была исчерпана.
Тоже самое с явой для телефонов. Просто небыло игр для моего телефона. Ну я сам переписал десятка два игр для своего телефона. Картинки классы...
Все что сверху это от полного НУЛЯ в МК и 4 часа копания в даташитах и читая книгу по програмированию МК и смотря при это кино по телеку. Уровень понимания сейчас видите сами. Кстати фильм "Щит" афигенный, мне понравился.
В изучении не стараюсь запомнить, то чего нет необходимости помнить. К примеру 35 команд в ассемблере заучивать не обязательно, листок на стену с ними и, надо посмотрел. Со временем само запомнится. ГЛАВНОЕ ПОНИМАНИЕ СУТИ!!!
Другой пример, если ты понимаешь как работает примитивный карбюратор, что в нем происходит, понять как работает самый навороченый инжектор, впрыск, и что делает электроника - дело нескольких минут.

С уважением ко всем. Спасибо отдельно людям которые делятся знаниями в коментах. Очень помогло в понимании некоторых аспектов.

#6 Пользователь офлайн   Alex 

  • Убиватель МК
  • PipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 903
  • Регистрация: 15 Февраль 11

Отправлено 27 Август 2014 - 15:54

Может тогда в Вашем случае начать сразу с ЯВУ (например Си) ? Зачем мучиться с ассемблером, если ЯВУ Вам легко даются ?
Да и примеров Сишных в интернете больше на порядки, нежели ассемблерных.
Не говорите что мне делать, и я не скажу куда Вам идти !
0

#7 Гость_trex_*

  • Группа: Гости

Отправлено 27 Август 2014 - 17:38

Alex, спасибо за ответ.
Но, как бы, извините, вопрос стоит в правильности понимания, так сказать процессов.
А на каком языке писать, да мне без разницы. Ява для меня - это язык для телефонных приложений и он на столько прост. Ну или мне так показалось.

Говорите Си или С++. Значит освоим "Си". Опять же как я и говорил, главное основа. А то получится, угадал все буквы не прочитал слово. Или слова знаю а говорить не могу.

Мне нужно всего-то сказать. "Вы правильно все поняли" или "все верно кроме,..." и свои пояснения.

Сегодня занят, завтра посмотрю Си и дочитаю книгу до конца(если успею).

Ребята, я не вундергинд, просто быстро обучаемый(когда понимаю). К примеру, 28 доказательств теоремы Пифагора я не учил, я понимал, и доказывал прямо на "доске". Без зубрешки.
Ну как бы по понятней объяснить. Я ничего никогда не зубрил. К примеру PWR_ON или PVR-on, NOP или NOR, главное я понимаю, что это и главное где это надо писать, а правописание я проверю позднее. И запоминание прийдет позже. Это уже опыт или наработка знаний.
Я досих пор путаю 20h и 21h кто из них вход и кто выход из программы. Но это не мешало мне написать програмку. Она работала на ура.
Ой сорри вызывают наар верк...
Пока всем

#8 Пользователь офлайн   Alex 

  • Убиватель МК
  • PipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 903
  • Регистрация: 15 Февраль 11

Отправлено 27 Август 2014 - 20:35

Просмотр сообщенияtrex (27 Август 2014 - 17:38) писал:

Ява для меня - это язык для телефонных приложений
Вы меня не поняли :)
Я не о Яве (Java) говорил, а о ЯВУ (Язык Высокого Уровня). Будет проще писать программу, главное - разобраться с алгоритмом и понять архитектуру и возможности МК.

ЗЫ: И не беритесь делать сразу всё, делайте постепенно. Всему своё время :)
Не говорите что мне делать, и я не скажу куда Вам идти !
0

#9 Гость_trex_*

  • Группа: Гости

Отправлено 27 Август 2014 - 22:16

Вот с этим я и завис.
Непойму что такое архитектура. Внутреннее модульное строение МК? Типа те элементы что в нутри МК? Или это как с intel и AMD процессорами?Я даже лезть не стал. Жуть.
А алгоритм ваще молчу.
Все! Мозги кипят. Сейчас я даташит на 12F675 полистаю помечу что мне нужно, а завтра потыкаюсь с Си.

Я же сказал на сегодняшний день мне нужна всего одна прошивка. И возможно больше и не понадобится. Ну если.......
З.Ы. сброс МК - что за хрень, ресет чтоли?

Сообщение отредактировал trex: 27 Август 2014 - 22:18


#10 Пользователь офлайн   Alex 

  • Убиватель МК
  • PipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 903
  • Регистрация: 15 Февраль 11

Отправлено 27 Август 2014 - 23:41

Дабы другие поняли о чём вообще идёт речь, процитирую то, что Вы мне написали в личку:

Цитата

Нужна прошивка на PIC12F675. Просто управляемый генератор прям.умпульсов.
2 кнопки частота, 2 кнопки скважность, и кнопка off/on. На пике 8 ног. 2-е(это 1 и 8) питание(3-5в); 5ног ввод/вывод(2,3,5,6,7) и 1-а ввод(нога 4).
Сценарий:
Подал питание, ген генерит 100Гц 1мксек. Или запустился из данных eeprom.
Жму + частота, частота увеличивается с шагом 1гц. держу кнопку быстро набирает.
Тоже самое с - частота.
Нажал скважность + , всё так же только шаг 1мксек.
Нажал сразу две +/- скважность записалась eeprom. тоже самое с частотой.
Нажал кнопку off/on. Микра ушла в sleep. Питание убрал.
Надеюсь Вы не против ? :)
Не говорите что мне делать, и я не скажу куда Вам идти !
0

#11 Пользователь офлайн   Alex 

  • Убиватель МК
  • PipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 903
  • Регистрация: 15 Февраль 11

Отправлено 27 Август 2014 - 23:49

Чтобы Вы сильно не мучались, скажу сразу. Генератор со скважностью и частотой разрешением в 1 мкс у Вас сделать не получится. просто не хватит быстродействия МК.
На вскидку, изменение частоты от 0 до 1 Кгц и скважность от 0% до 100% с разрешением в 100 мкс - реально.
Но изменение частоты и скважности будет измеряться не в герцах, а во времени, т.е. меняться будет период. Вот его разрешение вряд ли Вы добьётесь выше 0.1 мс, при частоте МК в 1 MIPS.

Цитата

З.Ы. сброс МК - что за хрень, ресет чтоли?
Т.е. слово "Сброс" Вам не понятно, а слово "Ресет" - да ? Очень странно для Русского человека :)
Не говорите что мне делать, и я не скажу куда Вам идти !
0

#12 Пользователь офлайн   Алексашка 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 311
  • Регистрация: 26 Апрель 13
  • ГородМирный, РС (Якутия)

Отправлено 28 Август 2014 - 07:15

на всех МК типа PIC12-18 есть вывод MCLR, на большинстве их них он может программно отключаться при задании конфигурации МК, и работать может как цифровой вход, на выход не может(кажись), этот вывод очень вредный особенно к внешним помехам, Вы правы от него МК сбрасывается (перезагружается) и программа начинается сначала, если на нем высокий уровень т.е. +5В (подключать через резистор 1-10к), то МК работает и программа идет по своей логике, если на него подать лог.0 т.е. замкнуть его на землю,то МК будет в режиме перезагрузки до того момента пока на него снова не подадут лог.1, на этот вывод часто ставят кнопки соединяющие его с землей, чтобы в случае зависания МК можно было перегрузить не отключая питание.
0

#13 Гость_trex_*

  • Группа: Гости

Отправлено 28 Август 2014 - 15:32

Огромное спасибо ВАМ ребята!!! Вы хоть отзываетесь, советуете...
Alex- для меня новая терминология. Я просто боюсь ошибиться в понимании. Ресет-сброс. Для меня и так хватило, резисторы, тригеры, стек, защелки.
К примеру:
Резистор - как я понял програмно вкл/выкл-мый, а какой номинал омы/кОмы. И куда, на (+) или (-).
Тригер - знаю что такое с 10-и лет. Но тут... "туман".
Стек - так и не понял. Какая-то часть памяти? Типа вспомогательной, но не учавствующей в общем процессе?
Зашелка - "на двери". Может это тригер, переводящий выход/выход принудительно в какое-то положение, допустим лог.0????
Ладно. Разберемся.


Алексашка - Спасибо. Немного уже в курсе. Даташит читал. Что-то понял, что-то нет. Да, на выход он не... на нем у меня в дистанке кнопа подвязана была(4-я нога на pic12f675 - GP3/MCLR/Vpp). Всеравно спасибо.

Я вам лучше коротко историю - почему я ...
Фонарик Акулы. Блин. Собрал. Запустил.
Но вот какая незадача. Не имея осцилографа и на коленках, я две недели ловил на макетке этот момент. Горит. Но стал собирать основательно все сбилось.
И вот попросили собрать ДУ к машине. Потом доводка стекл. Ну и дальше больше. Как то втянулся. Легко. Скачал прошивку, залил, собрал, и все изумительно работает.
И вот осенило дурака. А не заставить ли МК-шку все сделать? И проблема переменных резисторов отпадет. И настройка проще
Я снова посмотрел видео. На осцилографе значения: 12 микросекунд(µs) и 425,785Hz(это в его случае). Ну пусть +/- "лапоть" - 25мкСек и до 1000,00Hz.
Порылся в борохле и нашел 52 штуки pic12f675(оказались внутри микросерво для моделей), одну pic16f873 в связке с 93lc46b, и pic16f***(непомню. Из GPS сигнализации).
Куча, десяток разобранных лоптопов, модемов, мобилок и прочей хрени. А че с них взять? Ничего. SMD мелочь.

К примеру, я делал ночники на ледах, настольные лампы. Все автономное конечно. С потреблением до 10мА. На пару месяцев зарядки хватает.
Мне бы р12 к этому приспособить. Да знаний мало. И самое интересное. Все говорят - да легко. А как до дела.... Либо денег, либо "у каждого свой чемодан".

Вот так я и решил сам разбираться... Русских, как говорит Alex, по натуре русских, осталось мало...

З.Ы. И конечно я Русский. Не путать с "новым русским". Хоть и живу среди тупых буржуев. Плоды перестройки...
Американец, Немец, Русич и т.д. - это национальность.
А РУССКИЙ - это прилагательное, характеризующее человека. Как - с широкой души, умного, доброго, предприимчивого.
Русский - это натура, характер, в далекие времена. Но не национальность. Как сейчас.
Все с лирикой закончили.
Меня интересует что есть архитектура и что алгоритм.

Сообщение отредактировал trex: 28 Август 2014 - 15:37


#14 Гость_trex_*

  • Группа: Гости

Отправлено 28 Август 2014 - 17:16

Alex

Цитата

Чтобы Вы сильно не мучались, скажу сразу. Генератор со скважностью и частотой разрешением в 1 мкс у Вас сделать не получится. просто не хватит быстродействия МК.
На вскидку, изменение частоты от 0 до 1 Кгц и скважность от 0% до 100% с разрешением в 100 мкс - реально.
Но изменение частоты и скважности будет измеряться не в герцах, а во времени, т.е. меняться будет период. Вот его разрешение вряд ли Вы добьётесь выше 0.1 мс, при частоте МК в 1 MIPS.

Возможно я чего-то не понимаю.
НО. Вот передомной на другом компе даташит на pic12f675.
Тактовая частота:
DC-20Мгц, частота тактового сигнала. То бишь кварц на 20Мгц на GP2/OSC1/CLKIN/.
DC-200нс, длительность машинного цикла. 200 наносекунд - это 0,2 микросекунды. И про условии, что мне нужно, 1мксек-а. Вполне возможно?
Длительность маш.ц. - это время исполнения одной команды(одной строки). Правильно?
Ну в 5 строк разьве ген не влезет? Именно мумьтивибратор-генератор, который будет брать данные из ОЗУ. Во время исполнения ПП основная программа остановится(прерывание).

Ну незнаю. Учимся дальше...

#15 Пользователь офлайн   Алексашка 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 311
  • Регистрация: 26 Апрель 13
  • ГородМирный, РС (Якутия)

Отправлено 28 Август 2014 - 17:38

Начнем по порядку, тригер! В контроллере означает, что если ты установил лог.1 или лог.0 на любом выводе, то пока ты не дашь этому выводу другую (противоположную) команду он (вывод) своего состояния не изменит! Если вывод работает как вход значит с помощью команд btfsc и btfss можно считать с вывода лог.1.или лог.0. Защелка это и есть состояние триггера, либо Н.З. т.е.+5В, либо Н.Р. т.е. 0В земля. как в реле, только положение его фиксируется до момента пока ему не дали противоположную команду.
Стек!
Эта такая область оперативной памяти, к которой напрямую обращаться нет необходимости, и голову как он работает забивать себе не нужно, простой пример:
идет твоя программа по линейному сценарию (т.е. сверху вниз) и в программе есть подпрограммы (далее ПП) например задержка(пауза 10мкс), и ты в эту задержку переходишь командами не GOTO ZADERGKA, а call ZADERGKA, так вот в ПП задержки в конце ставится команда RETURN, как только команда call ZADERGKA была исполнена, в стек (неважно где он находится) автоматически загружается адрес по которому произойдет возврат из ПП задержки на следующую команду твоей линейной программы. и после исполнения команды RETURN, твоя программа будет исполнятся далее т.е. ниже команды call ZADERGKA. это и есть условный переход на выполнение какой нибудь ПП, которое находится вне линейной программы.
Подтягивающие резисторы.
Штука полезная, но как показала моя практика херня полная! Подтяжка происходит вывода МК к +5В через внутрений резистор 4,7к-5,6К, как пишут удобно например при опросе кнопок клавиатуры, но мне это ничуть не помогало когда я экономля резисторы SMD, в надежде на внутреннюю подтяжку ловил левые самопроизвольные всплески на нужном мне выводе (который у меня запускал двигатель на машине), так что мой совет, доверяй только тем резюкам которые видишь своими глазами.
0

#16 Пользователь офлайн   Алексашка 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 311
  • Регистрация: 26 Апрель 13
  • ГородМирный, РС (Якутия)

Отправлено 28 Август 2014 - 17:46

я не вкуриваю зачем тебе перестраиваемая частота на выводе МК, если управлять интенсивностью освещения светодиодов, то не проще использовать ШИМ (широтно импульсная модуляция) МК, частота постоянная, меняется только скважность(заполнение лог.1 ) байта который выдается на вывод МК. В цоколевке МК подписан как модуль CCP1, ССР2.
0

#17 Пользователь офлайн   Игорь Бутывский 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 219
  • Регистрация: 15 Февраль 11

Отправлено 28 Август 2014 - 18:21

Пока писал, Алексашка уже ответил.
Но думаю хуже не будет и от моей писанины.

Постепенно придёт понимание и стека и защёлки. Сразу всего не охватишь.
Стек по рабоче-крестьянски можно объяснить следующим образом.
Это область оперативной памяти. В которую записывается адрес той точки программы ( строки программы) откуда произошёл переход например по команде call или по прерыванию.
Возьмём 12f675.
Допустим вам в ходе выполнения программы нужно засечь момент какого то внешнего электрического воздействия .
Пусть это воздействие будет какой то импульс. Когда придёт этот импульс - науке не известно. Но он придёт обязательно.
Долго не мудрствуя, мы настраиваем вывод GP2\INT на вход и разрешаем прерывание по этому самому входу INT. В схеме подключаем этот вход к источнику ожидаемого импульса. А в подпрограмме прерывания пишем то, что бы мы хотели сделать по приходу этого импульса.
И всё. Забыли об этом.
Программа выполняется своим чередом. И вдруг, в каком то месте выполнения программы, приходит этот импульс на ногу GP2. В этот момент "рабочая точка программы" автоматически перескакивает на ПП обработки случившегося прерывания.
Но после обработки этой ПП, "рабочая точка" должна вернуться обратно в то место откуда она выскочила.
Вот тут и включается в работу стек. В него автоматически записывается адрес программы откуда произошёл перескок.
Записывается этот адрес в стек для того, чтобы после завершения отработки нужных дел в прерывании , программа могла вернуться именно в то место откуда она "выпрыгнула".
После отработки прерывания по команде retfie, этот адрес автоматически считывается из стека и программа возвращается туда откуда она сиганула.

Тоже самое происходит и например с командой условного перехода call. Только тут уже возврат в основную программу происходит по командам return или retlw .
У 12f675 стек является 8-ми уровневый. Т.е. одновременно может хранить до 8-ми адресов возврата.
Если при полном стеке, выполнить ещё один переход (9-й) по call или прерыванию , то самый верхний (самый первый адрес затрётся (выдавится, если брать стек как аналог магазина для патронов от пистолета).Т.е. будет безвозвратно утерян. И тогда программа будет вести себя неадекватно.
Поэтому за переполнением стека необходима следить.

Сообщение отредактировал Игорь Бутывский: 28 Август 2014 - 21:10

1

#18 Пользователь офлайн   Алексашка 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 311
  • Регистрация: 26 Апрель 13
  • ГородМирный, РС (Якутия)

Отправлено 28 Август 2014 - 23:48

красава Игорь, я лучше бы не объяснил, команда Return пишется, когда у тебя есть например ПП задержки, а команда retlw - когда используется вычисляемая таблица (вычисляемый переход), при этом вычисляемый байт после выполнения этой команды копируется в аккумулятор W

Сообщение отредактировал Алексашка: 28 Август 2014 - 23:52

1

#19 Гость_trex_*

  • Группа: Гости

Отправлено 29 Август 2014 - 15:09

Присоединяюсь к Алексашке.
Игорь! Вот почему умные книги не написаны так просто как ты сказал!!!Ребята не обижаетесь, что я на "ты"?
То есть, в основной программе не нужно прописывать перед call, ой нет, в начале, что ячейка(какая-то) в ОЗУ резервируется для записи строчки в программе, при переходе в ПП и последующего возврата с нее. Это произойдет автоматом через стек. Ну, экономия, и быстродействие...

Команды RETFIE и RETLW - обе исполняются в два захода. Как я понял, образно. На примере HDD. Диск крутится это ЦИКЛЫ. Цилиндры: 1-й это __CONFIG и основная программа, 2-й, 3-й... это ПП. Глубина ПП зависит от типа МК. Сетка это колличество строк/слов. Клястеры это включатели. И куча реле. И ноги.
Цикл первый - запись в контроллер режим работы реле и ног. Ход программы. Допустим GP2 работающий как INT поступила команда(допустим кнопку нажали), головка переходит на 2-й цилиндр и исполняется ПП. Исполнила и возвращается на 1-й цилиндр и ждет когда подойдет место, где она ушла на 2-й цилиндр, место прерывания. Вот и два цикла.

Алексашка. За резисторы - я так и думал. Проще SMD впаять или подобрать по надобности.
Книга - по твоему совету. ТАКАЯ ХРЕНЬ!!! Я до середины прочитал и забросил.
К примеру: "...стек это стек... бла бла... сейчас не поняли. Не важно. Потом поймете." И к середине книги этих "потом поймете" или "объясню позже" накопилось..., что я уже ничего не понимал. Чувак не есть как ИГОРЬ!!!
Нашел другую книгу "Си для PIC". Чел элементарно, на примерах и даташитах, объясняя каждый знак и символ, учит.
Короче два компа, 250 и 150 листов бумаги с двумя даташитами, результат моргалка. Прога его конечно, но я попробовал изменить порты и частоту. Прога скомпелировалась в hex. Осталось проверить.

Проверить. Ребяты. Помогите с Протеусом. Поставил. Но вот с ключами, непонял. Там их три RU ; EN и CHN. Ставить все? Или тот на каком программа? Или система(OS)?
Засада. Второй заход уже по установке.

Цитата

я не вкуриваю зачем тебе перестраиваемая частота на выводе МК, если управлять интенсивностью освещения светодиодов...

Вот видео. Где то с 5-6 минутыhttps://www.youtube....h?v=nl9E8F1gOD0. Там он все объясняет.
Я собрал ЭТО. И представь мои мытарства с реостатами ловя момент. БЕЗ ОСЦИЛЛОГРАФА. Две недели. Уже хотел выбросить. А он загорелся. На макетке. Перенес на платку и кол да мочала начинай сначала. Реостаты, такая не стабильная вещь. МК стабильней.
Цель первая. Находить это место без труда. Цель вторая. Найти способ определения этого места для МК. Осциллографа у меня нет, и купить не могу. Дорого.

Ну а вторая идея. Я собираю паука механического. Нужно управление. И размеры платки управления 25х15х5,5 мм; 7 моторов; размер общий в пол спичечной коробки.
Моторы 3х10,5мм; детали от наручных часов. Платка, нашел двусторонний 0,35мм текстолит с позолотой. Как бумага. Батарейка 10х10мм 60мА 3,7в литий-полимер. IR 1,5х2мм.
А дальше. Получится такая маленькая платка. Одна конструкция. Нет,тогда другая. Но это на потом. Сначала фонарь.

#20 Пользователь офлайн   Игорь Бутывский 

  • Завсегдатай
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 219
  • Регистрация: 15 Февраль 11

Отправлено 29 Август 2014 - 15:33

Proteus какой версии? Если v.8. То он вылетает постоянно. Но его удобно использовать для разводки печатных плат.
Если v.7 , то там один ключ англицкий.
Ещё смотря какой MPLAB используешь.
Если MPLABX то, к нему подходит только восьмая версия протеуса.
Если MPLAB v.8 то рекомендую Proteus v.7.10. Это одна из наиболее стабильных версий.
Найти её можно без проблем на rutrekerorg.
0

Поделиться темой:


  • 2 Страниц +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей