Приехал мне наконец JTAG программатор. И сразу проблемы: не могу найти драйвер для него. По запросу USB\VID_1A86&PID_7523&REV_0254 (это его) - гугл выдаёт что-то непонятное. Даже качнул какие-то дрова, винда ругнулась, что они не подписаны и дальше процесс стал. Студию 4.16 поставил, дров в ней не оказалось, отладчик она естественно не находит. Подозреваю, что должен появиться виртуальный СОМ-порт, а дальше.... Помогите, кто чем может... Добавлено: Mon Dec 02, 2013 9:58 pm |
https://www.olimex.com/Products/AVR/Programmers/...-AVR-JTAG-USB.pdf Оно, не? Добавлено: Mon Dec 02, 2013 10:19 pm |
Отключил обязательную проверку цифровой подписи драйверов, поставил таки драйвер. Мануал немного помог, не спорю... Но появилась следующая проблема... Добавлено: Mon Dec 02, 2013 10:51 pm
|
Seriyvolk писал(а): Но появилась следующая проблема... Программатор подключен к контроллеру? Фьюз JTAGEN установлен? Добавлено: Mon Dec 02, 2013 11:32 pm |
Не... До этого я исшо не дошёл... Меня первая строчка сильно смущает. Добавлено: Mon Dec 02, 2013 11:36 pm |
Мне кажется, в первой строчке он ругается что видит программатор, но не видит мк? Добавлено: Mon Dec 02, 2013 11:40 pm |
А мне кажется, что жалуется на инвалидный ИД самого программера... И кто прав? Добавлено: Mon Dec 02, 2013 11:43 pm |
Seriyvolk писал(а): Меня первая строчка сильно смущает. А чего она тебя смущает? Студия говорит, что обнаружен жтаг-адаптер, но девайс не возвращает жтаг айди. Если МК не подключен, так и должно быть. Воткни МК с установленным жатагенэйбл фьюзом, должно заработать. Добавлено: Mon Dec 02, 2013 11:47 pm |
Смотри, он дальше пишет: - Удостоверьтесь, что JTAG ICE (это программатор?) подключен к целевому устройству - думаю это мк. - Убедитесь, что фьюз JTAGEN установлен - тоже относится к косякам со стороны мк. Подцепи какой-нить камень и проверь Добавлено: Mon Dec 02, 2013 11:48 pm |
Ну раз это нормальное поведение - тогда всё здорово! Всем спасибо за помощь! Добавлено: Mon Dec 02, 2013 11:49 pm |
Назрел вопрос: правильно ли я понял, что прерывание по спадающему фронту в тини13 возможно только по одной ножке - INT0? Добавлено: Tue Jan 21, 2014 12:56 am |
Появилось у меня 2 вопроса, нигде толком прояснить не могу. 1. Если на атмегу 8 на её 2 входа прерывания сигнал прийдёт одновременно или во время обработки одного прерывания (там несколько действий по обработке этого события) прийдёт по другому входу прерывание - что случится? 2. Если выполнить такой код: PINC.1=1; PINC.1=0; каков в реальности окажется сигнал на выходе (частота тактирования 8 МГц) - будет ли это прямоугольник, правильно ли я понимаю, что его длительность будет несколько тактов или ровно 1 такт (1 мкс)? И достаточна ли будет его длительность чтобы запустить 555 таймер в моностабильном режиме (по 2 ноге)? Добавлено: Tue Feb 04, 2014 8:36 pm |
1. Если одновременно: выполнится то прерывание, чей приоритет выше. Приоритеты можно глянуть в файле студии m8def.inc
Если во время прерывания, то ничего не случится. Сначала выполнится то прерывание, которое выполняется в данный момент, потом выполнится второе. 2.Vitek_22 писал(а): Если выполнить такой код: PINC.1=1; PINC.1=0;То походу нифига не произойдёт. Из регистра PINx можно только читать. Это насколько я понял этот сишный код... Добавлено: Tue Feb 04, 2014 8:45 pm |
Не в PINC, а в PORTC надо писать. Или как там этот порт обозван... А Pin - таки да, это состояние выводов (независимо от соответствующего порта данных). Он только для чтения. Добавлено: Tue Feb 04, 2014 9:09 pm |
да, я ошибся - пока наизусть не знаю команды - писал по памяти, конечно PORT. Но вопрос в силе. Идея в общем такая, мне надо сформировать импульс длительностью 1 мс, но нельзя тратить на это время контроллера. Я думаю сформировать его за несколько тиков или сколько надо, чтобы поднять порт до лог.1 и опять опустить до 0. а с этого импульса запустить уже 555 таймер в моностаб. режиме. Вопрос в том, сколько будет длиться импульс, если не указывать delay, а просто разместить эти 2 строчки друг за другом Seriyvolk, спасибо, с прерыванием прояснилось! Добавлено: Tue Feb 04, 2014 9:17 pm |
Точно сказать нельзя, но, скорее всего, 1-2 такта. Для 555го может не хватить. И лучше использовать high(portc.1) и low(portc.1): High(portc.1) Delayms(1) Low(portc.1) Ну иди ставить low "потом", после каких-то осмысленных действий. Добавлено: Tue Feb 04, 2014 9:30 pm |
Импульс будет длиться 1 такт контроллера. Будет иголочка, чуть более 100 нСек. Добавлено: Tue Feb 04, 2014 9:30 pm |
Vitek_22, заюзай таймер. Или нет свободных? Добавлено: Tue Feb 04, 2014 9:45 pm |
1 есть свободный, но я не совсем понимаю как его здесь применить. Мне надо, чтобы МК не тратил своё время на вот этот самый импульс и быстро гонял основную программу. Если задать тут задержку, то он же будет стоять на этих строках, пока их не выполнит Добавлено: Wed Feb 05, 2014 11:08 am |
Таймер можно использовать по-разному. Например, выдать единичку в порт, запустить таймер, на какое-нибудь прерывание (по переполнению TOV, по сравнению - OCxx) установить простейший обработчик - выключалку порта (cbi PORTx,x, reti). Или прямо через вывод OCxx генерировать импульс, а в прерывании выключать счет (прерывать работу таймера после первого же импульса). Добавлено: Wed Feb 05, 2014 11:31 am |
а если так поступить - приначале события обнулить таймер и вывести в порт "1", а при достижении таймером нужного времени импульса вывести "0". Я так понимаю, что пока таймер будет тикать, основная программа будет гоняться без проблем, а в порту будет "1"? Добавлено: Wed Feb 05, 2014 12:34 pm |
Тебе ж не принципиально, сколько продлится импульс. Поставь high() в основном коде, а low() после выполнения какого-то осмысленного действия. Например, на часах следующую секунду отобразишь. Добавлено: Wed Feb 05, 2014 12:38 pm |
Vitek_22 писал(а): а если так поступить - приначале события обнулить таймер и вывести в порт "1", а при достижении таймером нужного времени импульса вывести "0". Я так понимаю, что пока таймер будет тикать, основная программа будет гоняться без проблем, а в порту будет "1"? Да, именно так и будет. Добавлено: Wed Feb 05, 2014 2:21 pm |
Обьясните дураку как на БК0010 в 8 КБ кода влезала целая операционка(ввод, вывод, ФДД, файловая система, коммандный процессор.....) а в ардуино только драйвер экранчика? И на чем(чем) писать под атмеги, чтоб эффективный код получить? Добавлено: Wed Feb 05, 2014 11:42 pm |
Ассемблер наше всё. Добавлено: Wed Feb 05, 2014 11:50 pm |
Лицензионное соглашение (c)Flyback.org.ru Российское общество любителей высоких напряжений. Использование материалов с данного сайта и форума возможно только с разрешения администрации. |