Мелкие вопросы по МК и ПЛИС.
Re: Различные мелкие вопросы
Тогда будет ошибка в 1 такт - компенсируй программно
— Не говорите мне что делать и я не скажу куда Вам идти...
Re: Различные мелкие вопросы
начал разбираться с таймерами, возник вопрос. на меге8 таймер 16 бит с двумя регистрами сравнения ОСR1A/1B. Я так понял нельзя использовать в режиме Сlear_Тo_Сompare оба регистра? у меня получается так, что вношу разные значения в регистры сравнения и то значение которое меньше обнуляет при совпадении регистр, а до большего так и не доходит счет. регистр TCNT то у них общий, хоть и 16 битный...
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: Различные мелкие вопросы
Alexeus писал(а):Я так понял нельзя использовать в режиме Сlear_Тo_Сompare оба регистра?
Использовать то можно, но таймер будет досчитывать только до одного рега сравнения (тот, в котором меньшее значение). В общем, вы всё правильно поняли.
Re: Различные мелкие вопросы
Alexeus писал(а):начал разбираться с таймерами, возник вопрос...
Ну а как вы хотели? Вы название режима не правильно считали, он называется Clear Timer on Compare. Исходя из названия ясен смысл - очищаем таймер при совпадении, естественно он должен работать как вы описали. Правда согласно даташиту есть режим когда сравнение идет с регистром ICR1, тогда если значение в нем будет больше чем в ОСR1A/1B, то можно будет использовать регистры сравнения - в общем надо пробовать, ибо сам не применял, кодом не смогу помочь (по крайней мере до вечера.)
Re: Различные мелкие вопросы
;-- timer/couter2 -- режим СТС --
ldi temp,(0<<FOC2)|(0<<WGM20)|(0<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20)
out TCCR2,temp
ldi temp,0
out TCNT2,temp ; регистр счетчика
ldi temp,99
out OCR2,temp ; регистр сравнения
;----------
прерывание по совпадению срабатывает.
выставляю:
ldi temp,(1<<COM20)
out TCCR2,temp
что бы активировать режим toggle на OC2 выходе и ВСЁ... прерывания по совпадению больше не работают. генерации на выходе OC2 нет.
вообще, даже не в прерывывании, просто по ходу программы пробую включить/отключить только! выход OC2 (паузы без импульсов мне нужны)
как прерывания по совпадению перестают обрабатываться... у чём дело не пойму... всего лишь подключаю и отключаю выход.
ldi temp,(0<<FOC2)|(0<<WGM20)|(0<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20)
out TCCR2,temp
ldi temp,0
out TCNT2,temp ; регистр счетчика
ldi temp,99
out OCR2,temp ; регистр сравнения
;----------
прерывание по совпадению срабатывает.
выставляю:
ldi temp,(1<<COM20)
out TCCR2,temp
что бы активировать режим toggle на OC2 выходе и ВСЁ... прерывания по совпадению больше не работают. генерации на выходе OC2 нет.
вообще, даже не в прерывывании, просто по ходу программы пробую включить/отключить только! выход OC2 (паузы без импульсов мне нужны)
как прерывания по совпадению перестают обрабатываться... у чём дело не пойму... всего лишь подключаю и отключаю выход.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Различные мелкие вопросы
Потому что Вы вновь переназначаете данные, вместо того что бы добавить.
Правильнее так
Правильнее так
Код: Выделить всё
ldi temp, (0<<FOC2)|(0<<WGM20)|(0<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20)
out TCCR2,temp
.....
.....
.....
in temp, TCCR2;
ori temp, (1<<COM20);
out TCCR2, temp;
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: Различные мелкие вопросы
а что там так много говорили Большевики о флагах и их сохранении в прерываниях?
у меня после очередного прерывания совпадения таймера/счетчика проскакивает условие сравнения в главной программе
(zone=3)
cpi zone,3
breq z3 ;тут проскакивает на cpi zone,4 хоть и не выполняет ничего, уходит дальше в тело программы, но и на z3 не скачет!
cpi zone,4
breq z4
у меня после очередного прерывания совпадения таймера/счетчика проскакивает условие сравнения в главной программе
(zone=3)
cpi zone,3
breq z3 ;тут проскакивает на cpi zone,4 хоть и не выполняет ничего, уходит дальше в тело программы, но и на z3 не скачет!
cpi zone,4
breq z4
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Различные мелкие вопросы
Рекомендуют сохранять состояние регистра SREG сразу по входу в обработку прерываний и восстанавливать перед выходом. Несоблюдение - чревато казусами
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: Различные мелкие вопросы
ага, спасибо- так и есть. у меня в прерывании тоже строчка сравнения стоит- она и портит SREG на выходе.
Re: Различные мелкие вопросы
А есть возможность из hex файла получить ассемблеровский?
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Различные мелкие вопросы
Легко, вот только он будет без коментариев
есть такая програмка - дизассемблер называется.
есть такая програмка - дизассемблер называется.
- vsegdaprav
- Нашел транзистор. Понюхал.
- Сообщения: 163
- Зарегистрирован: Пт янв 16, 2009 15:42:05
- Откуда: из тех же ворот что и весь народ
Re: Различные мелкие вопросы
скажите плиз, можно атмегу 8 заменить на атмегу 48? Прошивку менять придётся как я понял, а вообще реально или нет? Или это две принципиально разные вещи? Даташиты покурил, правда понял очень мало так как в аглицкой мове я не копенгаген.
Последний раз редактировалось vsegdaprav Ср апр 21, 2010 07:50:58, всего редактировалось 1 раз.
продам телевизор без рекламы
Русский человек славится своим умением находить выход из любых трудных ситуаций. Но ещё более он славится тем, что может найти туда вход.
Русский человек славится своим умением находить выход из любых трудных ситуаций. Но ещё более он славится тем, что может найти туда вход.
- Грендайзер
- Мучитель микросхем
- Сообщения: 479
- Зарегистрирован: Вт июн 02, 2009 22:38:40
- Откуда: Город-герой Москва
Re: Различные мелкие вопросы
Всем доброго времени суток. Есть проблемка
Спаял программатор, (схемулина прилогается) подключил, начал прошивать, ан хрен, пишет мол устройство не определено
.. бился с ним сутки. причём диодик ( HL1 "PRG") в моменты запуска прожига и чтения памяти исправно загорался. Прошивал, через PonyProg; MK- ATmega16L. Если возможно, может ли кто подкинуть схему, которая 100%работает с Pony, или может посоветовать, в чём собсно проблема.
Да!! Может ли причина заключаться в том, что на вывод питания АЦП (AVcc) я ничего не подключал и питание не подтягивал да, и ещё вывод 12 у микросхемы D1.1 и вывод вывод 3 у Х1 (LED), висят в воздухе
Да!! Может ли причина заключаться в том, что на вывод питания АЦП (AVcc) я ничего не подключал и питание не подтягивал да, и ещё вывод 12 у микросхемы D1.1 и вывод вывод 3 у Х1 (LED), висят в воздухе
- Вложения
-
- chema.jpg
- (80.95 КБ) 351 скачивание
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Различные мелкие вопросы
Попробуй прошить из CodeVision, в этой связке уже много лет юзаю.
Re: Различные мелкие вопросы
Народ если ATMEGA8 затактовать от "External Clock"(внешняя тактовая )
то нога "(XTAL2/TOSC2) PB7" свободна для ввода -вывода ?
то нога "(XTAL2/TOSC2) PB7" свободна для ввода -вывода ?
ух ты.... показывает
Re: Различные мелкие вопросы
ну судя по тому, что в даташите для такого режима она отображается как "NC", то скорее всего можно, но это явно не написано.
-
beloff
- Грызет канифоль
- Сообщения: 278
- Зарегистрирован: Чт мар 13, 2008 08:18:00
- Откуда: Новосибирск, Шлюзы
- Контактная информация:
Re: Различные мелкие вопросы
вот если в программатор AVR910 (AVR910-совместимый USB программатор (схема Prottoss'a)) поставить ATMEGA8L, то МК копец прийдёт сразу? просто, насколько я знаю, этот МК на 8 МГц, а кварц на 12МГц.
реально ли работа при кварце 8МГц?
реально ли работа при кварце 8МГц?
Я теперь [b][url=http://radiokot.ru/forum/memberlist.php?mode=viewprofile&u=23627]Rinon Ninqueon[/url][/b]
Re: Различные мелкие вопросы
ATMEGA8L +кварц 12 мегагерц -вероятность работы 99%.
для работы совтового юсб частота кварца должна быть имеенно 12мегагерц
для работы совтового юсб частота кварца должна быть имеенно 12мегагерц
ух ты.... показывает
Re: Различные мелкие вопросы
Здравствуйте, нам в институте задали курсовой в мп лабе сделать. А я первый раз сталкиваюсь с этой программой...
У меня курсовой начат,мне надо чтобы мне объяснили чего там к чему в режиме онлайн)))
суть программы: будет маленький синтезатор на пике 16ф877
при нажатиии на кнопку загорается светодиод и звучит нажатая нота...
КТО МНЕ МОЖЕТ ПОМОЧЬ?!?!?
У меня курсовой начат,мне надо чтобы мне объяснили чего там к чему в режиме онлайн)))
суть программы: будет маленький синтезатор на пике 16ф877
при нажатиии на кнопку загорается светодиод и звучит нажатая нота...
КТО МНЕ МОЖЕТ ПОМОЧЬ?!?!?
Re: Различные мелкие вопросы
Кто в курсе, на МЕГЕ8 и др. АВРках в программе можно сброс сделать (reset) -какой командой.
-Или только можно перейти к метке в начало программы, как бы сброс.
-Или ногой, подключенной к RESET из программы дернуть на массу?
хочу сделать, что бы если держать кнопку более 3х секунд, происходил полный сброс контроллера...
-Или только можно перейти к метке в начало программы, как бы сброс.
-Или ногой, подключенной к RESET из программы дернуть на массу?
хочу сделать, что бы если держать кнопку более 3х секунд, происходил полный сброс контроллера...
