 |
|
|
|
| Автор |
Сообщение |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 14 Май 2007, 14:33 Заголовок сообщения: |
|
|
| day177 писал(а): |
тогда как это понимать?
Кроме того, флаг можно очистить, записав в него логическую единицу.
|
Не знаю, у меня нет отладчика под авр - возможно, просто ошибка в тексте - (вместо очистить - взвести), а может - взводится 0, хотя, я думаю, скорее первое.
Вы можете досрочно дернуть прерывание, записав в флаг 1. Зачем это нужно - если можно просто его вызвать через call - меньше кода на пару байт.
Попробуйте и посмотрите регистры отладчиком - это забавно и полезно.
| day177 писал(а): |
Тогда такой вопрос: можно как-нибудь проверять возникновение прерывания без использования переменных? |
После отладчика Вы это решите сами. _________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
avr123.nm.ru Знатный посетитель (>20)

Зарегистрирован: 07.08.2006 Сообщения: 67
|
Добавлено: 14 Май 2007, 14:49 Заголовок сообщения: |
|
|
В AVR флаг очищается (делается нулем) записью в него 1.
moderator
Дальнейшая навязчивая реклама удалена.
123, сколько раз говорить?
|
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 14 Май 2007, 14:52 Заголовок сообщения: |
|
|
Прикольно  _________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
AndryG Модератор
Зарегистрирован: 24.07.2006 Сообщения: 411 Откуда: Helios-3
|
Добавлено: 14 Май 2007, 16:26 Заголовок сообщения: |
|
|
| day177 писал(а): | подскажите пожалуйста почему не работает такое условие проверки прерывания int0
и для прерывания 8-битного счетчика
|
Почему не работает ... да на прерывание уходит контроллер ему не до Вашего кода ... попробуйте сперва глобально запретить прерывания. дабы контроллер не прерывался ... и пройдитесь по АСМ-коду в отладчике ... я колупался одно время с этими флагами - интересно
| Цитата: |
Просто хотелось использовать их для того чтоб не поднимать како-либо флаг внутри прерывания, а просто следить за флагами возникающих прерываний |
[/quote]
Прочтите еще разок написаное ... скорее всего Вы запутались в словах ... может вот так: "Хочу просто за флагами следить и не использовать процедуры обработки прервыаний"
Как расчитать таймер - писал в этом топике ... _________________ AndryG |
|
| Вернуться к началу |
|
 |
day177 Знатный посетитель (>20)


Зарегистрирован: 25.12.2006 Сообщения: 51 Откуда: Тула
|
Добавлено: 23 Май 2007, 14:48 Заголовок сообщения: |
|
|
to AndryG
не подскажите где почитать подробнее про организацию видеопамяти. Ни в гугле ни в яндексе ничего не нашел  |
|
| Вернуться к началу |
|
 |
AndryG Модератор
Зарегистрирован: 24.07.2006 Сообщения: 411 Откуда: Helios-3
|
Добавлено: 23 Май 2007, 18:34 Заголовок сообщения: |
|
|
под "видеопамятью" я имею ввиду участок памяти, на основе данных которой видеодрайвер троит изображение на устройстве вывода.
В нашем случае с семисегментниками .. это просто одно-два слова ... мы туда пишем, что мы хотим видеть на индикаторе, а микроконтроллер смотрит на эту память (переменные) и на основе их данных выводит символы/цифры на индикатор (в прерывании таймера)
Вот и всё.
Ах да! Организация!
Ну я лично использовал два варианта:
Если нужно выводить только цифры и пару знаков (всего менее 16 штук), то все символы прописываю в знакогенераторе ... и в "ВИДЕОПАМЯТЬ" пишу номер ячейки знакогенератора, где хранится нужный символ(цифра) ... таким макаром на каждый индикатор идет 4 бита -- один байт - два индикатора ... удобно в видеопамять бросать BCD-числа.
если нужно выводить много разных символов (типа бегущие огоньки делаем на индикаторе), то тогда в видеопамяти каждый байт - один индикатор ... получается можно управлять каждый сегментом отдельно.
Какой вариант Вам ближе - смотрите по задаче.
Или давайте задачу - вместе посмотрим. _________________ AndryG |
|
| Вернуться к началу |
|
 |
day177 Знатный посетитель (>20)


Зарегистрирован: 25.12.2006 Сообщения: 51 Откуда: Тула
|
Добавлено: 24 Май 2007, 14:30 Заголовок сообщения: |
|
|
| Цитата: | | ...и на основе их данных выводит символы/цифры на индикатор (в прерывании таймера) |
т.е. вы хотите сказать что данные выводятся на индикатор не постоянно, а только в прерывании? а не слишком ли большой получится обрабочик в таком случае? |
|
| Вернуться к началу |
|
 |
AndryG Модератор
Зарегистрирован: 24.07.2006 Сообщения: 411 Откуда: Helios-3
|
Добавлено: 24 Май 2007, 14:41 Заголовок сообщения: |
|
|
Динамическая индикация ... данные выводятся в прерывании. которое генерится по таймеру ... я о этом прерывании говорю.
А забиваются данные в видеопамять в главном цикле, в других прерываниях. в этом же изменяются (точкой моргать например в часах) или вообще где угодно. _________________ AndryG |
|
| Вернуться к началу |
|
 |
avr123.nm.ru Знатный посетитель (>20)

Зарегистрирован: 07.08.2006 Сообщения: 67
|
Добавлено: 27 Май 2007, 0:08 Заголовок сообщения: |
|
|
| day177 писал(а): |
только как вот получить такое значение используя 8 битный таймер? долго парился с экселем но так и не смог найти нужного значения для счетчика и клока  |
Попробуйте мастер кода компилятора ICC - очень удобно и интерактивненько  |
|
| Вернуться к началу |
|
 |
Krik99 Знатный посетитель (>20)

Зарегистрирован: 15.12.2006 Сообщения: 26 Откуда: Одеская обл. г.Котовск
|
Добавлено: 07 Июл 2007, 11:16 Заголовок сообщения: |
|
|
Я некак не могу нормально изучить встроенный таймер на Си под WinAVR... Для этого я хочу найти такой исходник: Там должно быть два светодиода на любых портах, первый светодиод должен мигать через каждую минуту, а второй светодиод должен проверять не нажата ли кнопка и если нажата он должен гореть... Как написать код ко второму светодиоду я знаю , а как написать программу для первого светодиода я не знаю но хочу чтобы она работала с помощу встроенного таймера... За ранние благодарен!  |
|
| Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять вложения в этом форуме Вы можете просматривать вложения в этом форуме
|
|