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

Фото
- - - - -

МК кто-нибудь программирует? PIC, AVR, ARM?


  • Вы не можете создать новую тему
  • Please log in to reply
313 ответов в этой теме

#31 pikemon

pikemon
  • Новобранец
  • 17 сообщений

Отправлено 11 января 2010 - 17:35

Сообщение о том, что программа не работает в реальном времени появляется?
Фузы и частоту на МК в протеусе установил верно?
Dead time не забыл? (время свечения должно быть выше времени не свечения)
Помочь с программой не могу т.к. на С не пишу и с AVR почти не связываюсь.
Мой выбор - микрочип. Их документация понятнее. Лучше быть хорошим программистом одних МК, чем плохим всех.
ЗЫ выложи проект, подумаем.


Начались экзамены и как-то я отвлекся и затормозил с ответом.
Короче программа и правда выполняется не в реальном времени из-за загрузки проца(показывает, что грузит на 90%).
Simulation is not running in real time due to excessive CPU load.

Кроме этого еще две ошибки постоянные,
PC=Ox130. [AVR WATCHDOG]Watchdog setup sequence is timed out. Do nothing.
PC=0x01E4 [AVR WATCHDOG]Timer expired - processor will be reset.

Пока постораюсь сам исправить, ну а если не получится, то тогда выложу. Попробую программу оптимизировать, может проблема в ней.
  • 0

#32 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 12 января 2010 - 17:24

pikemon, ты запустил watch dog timer. Этот таймер принудительно перезапускает проц в случае переполнения. Выключается он фузом конфигурации. Но если ты решил его использовать, то надо его сбрасывать програмно раньше, чем он переполнится. Я им ниразу не пользовался. Он полезен для устройств с нестабильным питанием, когда может остановится внешний генератор, а внутренний перезапустит весь проц в случае такой петрушки.
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#33 pikemon

pikemon
  • Новобранец
  • 17 сообщений

Отправлено 16 января 2010 - 13:19

Непонятно в чем ошибка, ибо процессор грузится на 90-100% даже если просто подавать логическую единицу только на 1 ножку.

Можете сказать что именно означает эта ошибка, что симуляция проходит не в реальном времени. С чем это может быть связано?
  • 0

#34 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 16 января 2010 - 21:18

Выложи проект, посмотрим. Там много нюансов. Резисторы надо ставить digital, они быстрее считаются. Надо посмотреть самому.
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#35 pikemon

pikemon
  • Новобранец
  • 17 сообщений

Отправлено 16 января 2010 - 22:14

Если честно, то транзисторы, резисторы и светодиоды выбирал интуитивно) ибо их там так много и не знал какие лучше.

Прикрепил в архив всё что мне выдал протеус и савр.

Прикрепленные файлы

  • Прикрепленный файл  proteus.rar   63,82К   7 Количество загрузок

  • 0

#36 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 17 января 2010 - 01:37

Если уж ставишь транзисторы, ставь полевые. Им на затвор можно подавать 5в. А ты поставил биполярные, ток базы не ограничил. А МК может выбавать не более 20мА на один вывод и не более 100мА на весь порт. У тебя же они были перегружены по всем портам. Я изменил характеристики всех светодиодов, чтобы не перегружать МК. Так что для реальной жизни эта схема не подойдет. Но модель работает. Хотя, вроде бы ошибка есть при переходе на другой столбец (с седьмого на восьмой). В общем, массив ты нарисовал. А как теперь саму игру делать будешь? Все возможности МК ты исчерпал. А ведь нужна еще сама программа игры, плюс управление. Советую повесить столбцы на прерывание. И управление тоже на прерывание. Тогда индикация не будет тормозить, даже если математика не успеет. Выбери таймер и подсади на него буквально две строчки. Переключить столбец и изменить строку. Будет уже нормальная динамическая индикация.

Прикрепленные файлы

  • Прикрепленный файл  prot.rar   89,21К   8 Количество загрузок

Сообщение изменено: Вырвиглаз (17 января 2010 - 01:38 )

  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#37 pikemon

pikemon
  • Новобранец
  • 17 сообщений

Отправлено 17 января 2010 - 16:14

Если уж ставишь транзисторы, ставь полевые. Им на затвор можно подавать 5в. А ты поставил биполярные, ток базы не ограничил. А МК может выбавать не более 20мА на один вывод и не более 100мА на весь порт. У тебя же они были перегружены по всем портам. Я изменил характеристики всех светодиодов, чтобы не перегружать МК. Так что для реальной жизни эта схема не подойдет. Но модель работает. Хотя, вроде бы ошибка есть при переходе на другой столбец (с седьмого на восьмой). В общем, массив ты нарисовал. А как теперь саму игру делать будешь? Все возможности МК ты исчерпал. А ведь нужна еще сама программа игры, плюс управление. Советую повесить столбцы на прерывание. И управление тоже на прерывание. Тогда индикация не будет тормозить, даже если математика не успеет. Выбери таймер и подсади на него буквально две строчки. Переключить столбец и изменить строку. Будет уже нормальная динамическая индикация.


Как всё сложно :( .
Не совсем всё понятно что вы мне написали, но постораюсь разобраться, да поможет мне гугл.
Проект пока не удаётся открыть, видно версия протеуса у меня старая.

Сообщение изменено: pikemon (17 января 2010 - 16:15 )

  • 0

#38 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 17 января 2010 - 18:16

Ко мне можно на ты, я почти твой ровесник. А на счет версии - правда. Протеус 7.6 СП0 у меня. Могу поделится, если сам на торрентах не скачаешь.
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#39 Adrammelehh

Adrammelehh

    гиперактивен

  • Постоялец
  • 3 321 сообщений
  • Откуда:Ида-Вирумаа, Нарва, Ээстимаа

Отправлено 28 января 2010 - 15:00

Ех был у нас курс Микропроцссорной техник и занимались ими. Всё самое простейшее. Сам может бы и занимался да не хватает мне логического мышления и в электронике слаб, посему энтузиазм угас и я забил наэт тему..
  • 0
Внимание! Пост-детектор!
Одним из побочных эффектов от прочтения этого поста является так называемый butthurt.
Если вы начнёте ощущать боль в нижней части спины, следует немедленно прекратить дальнейшее чтение и смириться с фактом, что вы — интеллектуальное большинство

#40 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 19 апреля 2010 - 09:17

Может кто подскажет - как зашить в АтМегу8 с неизвестно как выставленными фьюзами на параллельном программаторе "правильные" (читай - заводские) фьюзы? CVR и PonyProg ругаются.
Программатор - "5 проводков" без буфера на LPT.
Кварц ставить не пробовал - нет под рукой в данный момент, да и читал вроде где-то что при параллельном программировании он не критичен.

Сообщение изменено: Junk1e (19 апреля 2010 - 09:18 )

  • 0

#41 Sergio

Sergio
  • Постоялец
  • 3 051 сообщений

Отправлено 19 апреля 2010 - 11:29

5 проводков - это не параллельный программатор, хотя и используется параллельный порт.

А прошить очень просто, нужно просто подать внешний тактовый сигнал, avreal, например, это умеет с программатором STK200/300. 5 проводков - это упрощенный вариант этого программатора, вроде совместимый, тоже должно работать.
Для тактового сигнала используется выход LED, проверьте, подключен ли он в вашем программаторе к Меге, к ноге XTAL1.
http://real.kiev.ua/...u/adapters.html
  • 0

#42 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 19 апреля 2010 - 23:04

Нет, на АВР сбросить фуз защиты на чтение можно только параллельным программатором. Смотрите внимательно даташит. Так же SPI интерфейс может быть заблокирован выключением фуза SPI. Типа, отключили интерфейс, потому что не используете, и мк перестает шиться. Не вы первые, господа.
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#43 Sergio

Sergio
  • Постоялец
  • 3 051 сообщений

Отправлено 20 апреля 2010 - 08:00

Если установлены биты защиты и запрещен SPI, то, конечно, дело усложняется. Но об это речи вроде не было.

Может быть там просто биты тактирования не так выставлены, как надо, например.
  • 0

#44 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 20 апреля 2010 - 08:59

Вообще, мега была прошита в CVR кнопкой "program all". Только потом узнал что даже при отсутствии галки в "program fuses", по комманде "program all" он их всёравно шьёт. И естественно никаких галок во вьюзах не стояло, впрочем как и в "program fuses", что не помешало по видимому ему их всех установить (защиту от чтения, перевод резета в IO режим и прочие прелести жизни) по комманде "program all". Погуглив узнал что грабли довольно распространённые и многие на них наступают и что проще всего купить новый МК.

Сообщение изменено: Junk1e (20 апреля 2010 - 09:00 )

  • 0

#45 Sergio

Sergio
  • Постоялец
  • 3 051 сообщений

Отправлено 20 апреля 2010 - 09:19

проще всего купить новый МК

Учитывая, что МК стоит всего 30 крон, наверно да, лучше. И уже в будущем будешь опытнее.
  • 0

#46 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 20 апреля 2010 - 11:21

МК стоит всего 30 крон

Эмм.. ну-ка подскажите пожалуйста где это можно мегу8 раздобыть за 30 крон? В эльфе оные штучно по 78 наших эстонских:D
  • 0

#47 Sergio

Sergio
  • Постоялец
  • 3 051 сообщений

Отправлено 20 апреля 2010 - 11:33

http://www.westbalt....ption=1&x=0&y=0

http://www.serigo.ee...4bfc231&x=0&y=0
Во втором, правда, в наличии нету сейчас тех, что по 30.

http://www.yeint.ee/...atmega8&x=0&y=0
Чуть дороже, но не 78.

:)
  • 0

#48 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 22 апреля 2010 - 23:55

В YE мега8 в корпусе SMD, что не есть гут для домашних условий, но тем не менее - спасибо за ценные наводки, примем к сведению;)
С мегой не всё так плохо вышло как думалось - прицепил кварц на 8мгц и действительно заработало.

Сообщение изменено: Junk1e (22 апреля 2010 - 23:59 )

  • 0

#49 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 23 апреля 2010 - 20:37

У меги, вроде, уже JTAG есть. Нафиг тогда что-то изобретать. Лепишь на плату SMD корпус, выводишь отдельно JTAG. Через него и прошивать можно и отлаживать. Никаких дырок сверлить не надо. Красота!
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#50 Sergio

Sergio
  • Постоялец
  • 3 051 сообщений

Отправлено 23 апреля 2010 - 22:44

У меги, вроде, уже JTAG есть.

У Atmega8 нету. Есть, если мне не изменяет мой склероз, начиная с Atmega16.
Но тем не менее, проводки или разъемы наружу для программирования тоже можно вывести, кто мешает? В промышленности так обычно и делается, не только на AVR.
Только вот у человека, насколько я понял, проблемы именно с изготовлением платы и пайкой.
А для DIP в общем то и плату делать не обязательно для экспериментов, все на пружинной макетке можно сделать.

Сообщение изменено: Sergio (23 апреля 2010 - 22:48 )

  • 0

#51 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 04 июня 2010 - 00:01

Кто-нибудь сталкивался с контроллерами ARM (8051 ядро)? Конкретно - ADuC814. Нужна консультация по нескольким аспектам, если не затруднит - пишите в личку.

Сообщение изменено: Junk1e (04 июня 2010 - 00:03 )

  • 0

#52 Sergio

Sergio
  • Постоялец
  • 3 051 сообщений

Отправлено 04 июня 2010 - 11:27

Кто-нибудь сталкивался с контроллерами ARM (8051 ядро)?

ARM и 8051 - это две совершенно разные архитектуры, ты уж определись. Впрочем, я ни с теми ни с другими не работал, поэтому проконсультировать не смогу.
  • 0

#53 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 04 июня 2010 - 12:15

Мой косяк. Определился - 8051 :)

Сообщение изменено: Junk1e (04 июня 2010 - 12:16 )

  • 0

#54 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 05 июня 2010 - 10:12

Сталкивался с АРМами. Но компиляторы только Сишные, на которые у меня аллергия. Перешел на ПИК24. Хотя в ценовом вопросе АРМы вне конкуренции.
Junk1e, ты спроси здесь, вместе покумекаем. Не думаю, что ты собираешься писать программу под этот камень. Скорее всего, прочитать-записать решил. Правильно?
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#55 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 05 июня 2010 - 11:14

Как раз-таки прогу нужно написать именно под этот камень.. Почему выбор пал конкретно на него - без понятия, мне принесли уже готовую железяку в сборе.
С процедурными языками программирования вроде-бы неплохо знаком, поэтому думаю что трудностей конкретно с СИ не возникнет (использую Keil для компиляции и отладки).
Алгоритм проги мною написан, только вот зашел в некий тупик - необходимо с камня подавать тактовые импульсы на внешнее устройство с возможностью плавной регулировки (внешним потенциометром подцепленным к АЦП) их частоты (4-800гц). Никак не могу додуматься - как реализовать подобное действие таким образом, чтобы это не прерывало действия основной программы, т.е. на заднем плане, если уж можно так выразиться.

К этому счастью нужно будет ещё прикрутить и счётчик этих самых импульсов, но это уже легче - у него реализованы несколько timer'ов и counter'ов аппаратно, нужно лишь указать какие ноги слушать.

Сообщение изменено: Junk1e (05 июня 2010 - 11:38 )

  • 0

#56 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 05 июня 2010 - 11:43

Плавную регулировку я делаю так:
Все операции происходят внутри программы прерывания.
Прерывание по таймеру:
1) Инвертировать вывод
2) Установить начальное значение таймера переменной длительности (1/частоту)
3) Запустить АЦП
Прерывание по АЦП:
1) Полученное значение присвоить переменной длительности
Все. Будет плавная регулировка без потерь в основном цикле программы. Такие действия потребуют несколько рабочих тактов и предварительную настройку прерываний.
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#57 Junk1e

Junk1e
  • Постоялец
  • 793 сообщений
  • Откуда:Тарту

Отправлено 05 июня 2010 - 19:19

Вырвиглаз, а понаглеть немного можно? :rolleyes: Можно кусок кода с инициализацией прерываний в необходимом режиме из какого-нибудь рабочего проэкта (только не на асме, умоляю :lol:)?

Сообщение изменено: Junk1e (05 июня 2010 - 19:21 )

  • 0

#58 Вырвиглаз

Вырвиглаз

    Убийца травы

  • Постоялец
  • 15 928 сообщений
  • Откуда:Эстония, Таллин

Отправлено 05 июня 2010 - 21:04

Конкретно для твоего проца ничем не помогу. Надо смотреть даташит, регистры. На чем написано не важно, даже на асме код будет выглядеть похоже. Просто заносятся значения в регистры и все. Сначала конфигурируем таймер и АЦП, затем их прерывания и под конец разрешаем все прерывания разом. Для ПИКА могу помочь, их я хорошо знаю. Ну с АВР тоже не сложно разобраться, хоть даташиты для них бараны пишут. Но на твой черт его знает, что там писать. У него может быть аппаратный стек для прерываний для организации приоритетов, если два прерывания происходят одновременно. Такая фишка у пика24 и АРМа. Сложно довольно таки даже простейшую задачу реализовать.
  • 0
Кто живет и грешит в Эстонии, тот опять родится в Эстонии.

#59 kerf

kerf
  • Пользователь
  • 157 сообщений
  • Откуда:Таллинн

Отправлено 07 июня 2010 - 13:12

Ребят, помогите выбрать программатор для начала? Кто как выбирал? Понимаю что эта вещь покупается один раз, за дорого и на долгое время. А что мне делать если я просто побаловаться хочу? Летом времени много =) Может купил бы с рук у кого простенький ненужный... Сам программист.. Но с детства в электронику тоже тянуло. =) Микроконтроллер выберу потом, буду отталкиватсь от прибора.

Паяльник есть, платы еще в детстве в кружке элеткроники делали, основы электроники тоже вроде что-то знаю. Хочу попрактиковаться.
Принимаю любые советы ^_^
  • 0
0001 , 0010 , 0011 , 0100 , 0101 вышел зайчик погулять!
и где же смысл?
IAPB48

#60 Sergio

Sergio
  • Постоялец
  • 3 051 сообщений

Отправлено 07 июня 2010 - 13:48

Микроконтроллер выберу потом, буду отталкиватсь от прибора.

IMHO, нужно начинать с выбора микроконтроллера, а не программатора.

Тем более, если только побаловаться, то дорогой программатор не нужен. Все равно 90% его возможностей не будут использоваться вообще.

Вполне сойдет и Atmega дешевенькая для начала, и программатор STK200/300 (это если есть LPT-порт в компьютере).

Сообщение изменено: Sergio (07 июня 2010 - 13:51 )

  • 0