CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Avarges »

Можно МК нагрузить по полной, это значит delay лишние выбросить, на них только теряется процессорное время.
Но программу написать будет сложно, ЦМУ и гирлянды совместить это еще легко, а вот генератор - критичное ко времени устройство добавить сложнее.
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Re: CodeVision AVR в вопросах и ответах

Сообщение BerZerK-ku »

Avarges писал(а): а вот генератор - критичное ко времени устройство добавить сложнее.

Да ?! это же всего 1 таймер и 0 процессорного времени во время генерации.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

один порт - переключатель гирлянд ( Кстати, можно ли частоту переключения изменять таймером, т.е. вместо задержки delay во включенном состоянии использовать таймер ???)
Можно. Использовать таймер даже желательно.

2-й порт - ЦМУ с прерыванием,
Для чего прерывание? Тем не менее можно.

3-й - генератор прямоугольных импульсов с изменяемой частотой ????
Всеми мусолимуемый ШИМ.
Docendo discimus
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Нашел возможное решение. !)для гирлянды на таймер подавать сигнал с внешнего генератора. Выбрать требуемое деление на входе таймера постоянным. Изменяя частоту внешнего генератора, изменяем время задержки переключения гирлянды.
2) Управлять регистром счета TCNT. Т.е. настроить при помощи входных делителей работу так, чтобы задержка с помощью таймера соответствовала минимальной частоте переключения гирлянд. А затем менять значения регистра TCNT. (Например, TCNT=50). Т.е. переполнение счетчика будет наступать быстрее...
Прерывание в ЦМУ используется для разгрузки МК. Т.е. выполняется какая-либо программа и параллельно таймер (ЦМУ) считает входные импульсы), как только кличество этих импульсов соответствует заданному, таймер "просит" команду прерывания.
По такому принципу работает мышь и клавиатура в компьютере. Поэтому когда комп зависает, курсор мыши продолжает работать
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Скажите, пожалуйста, МК AT mega 16 имеет 3 входа INT (INT0, INT1, INT2). Сколько максимальных внешних прерываний можно реализовать ??? 2 или 3?
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Re: CodeVision AVR в вопросах и ответах

Сообщение BerZerK-ku »

3
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

BerZerK-ku писал(а):3

:beer:
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

А если надо больше, то прилепить контроллер прерываний. Супервизор этакий.
ps. Так, мысли вслух.
Docendo discimus
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

pyzh_man писал(а):А если надо больше, то прилепить контроллер прерываний. Супервизор этакий.
ps. Так, мысли вслух.

Т.е. ANO и т.д. ???
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

1) Какими МК чаще пользуйтесь PIC или AVR ???
2) Какие программаторы используйте ??? И если не секрет :) , за сколько брали ???
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

cat-dog-god0 писал(а):Скажите, пожалуйста, МК AT mega 16 имеет 3 входа INT (INT0, INT1, INT2). Сколько максимальных внешних прерываний можно реализовать ??? 2 или 3?

BerZerK-ku писал(а):3
не три, а больше.
битва с дураками проиграна, победители торжествуют. слава победителям!
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Мастер Ломастер писал(а):не три, а больше.

Не могли бы вы объяснить как и почему ??? Слишком многовато параметров для меня, я запутался, да и в литературе конкретных и систематизированных ответов нет. :(
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Скажите, если совместить ЦМУ с прерыванием и переключатель гирлянд с функцией delay, Будут ли две эти программы конфликтовать между собой ??? И какими могут быть мин. и макс. значения для delay ????
А как тут реализуется ШИМ для каждого канала, ведь в AT mega 16 только 3 таймера /счетчика ??? :
http://radiokot.ru/circuit/light/run/20/
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Re: CodeVision AVR в вопросах и ответах

Сообщение BerZerK-ku »

cat-dog-god0 писал(а):е три, а больше.

Заинтересовали , а каким образом внешних прерываний может быть больше, если векторов внешних прерываний три?
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

BerZerK-ku писал(а):
cat-dog-god0 писал(а):е три, а больше.

Заинтересовали , а каким образом внешних прерываний может быть больше, если векторов внешних прерываний три?

есть встроенный компаратор, который имеет 2 входных линии, и его можно настроить так, что по сигналу на одной из них может генерироваться прерывание - это +1.
есть таймер с режимом захвата, т.е. вход ICP1 - по событию захвата может генерироваться прерывание - это еще +1.
с некоторой натяжкой, допустимой для немгновенной реакции на сигнал, можно использовать вход USART для генерации прерывания - это +0.5 (все-таки реакция не мгновенная будет)

таким образом, для упомянутого контроллера имеется возможность организовать до 5,5 внешних запросов прерываний :)
битва с дураками проиграна, победители торжествуют. слава победителям!
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Re: CodeVision AVR в вопросах и ответах

Сообщение BerZerK-ku »

Мда... я то думал. что будет что-то оригинальное, а вы всего лишь о прерываниях периферии.
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

BerZerK-ku писал(а):Мда... я то думал. что будет что-то оригинальное, а вы всего лишь о прерываниях периферии.
ну придумайте что-то более оригинальное :)
битва с дураками проиграна, победители торжествуют. слава победителям!
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Уважаемые коты! Не могли бы вы на пальцах объяснить как использовать таймер/счетчик: как объявлять его, как изменять режимы работы, как делать пред установки, как объявляются функции прерывания в зависимости от режима рвботы таймера/счетчика ???????
----------
P.S. Я совсем запутался в регистрах, не понятно какой куда :( Вроде с одним разобрался, как оказывается есть еще и еще один...
Аватара пользователя
levaclaus
Потрогал лапой паяльник
Сообщения: 302
Зарегистрирован: Пн янв 07, 2008 16:56:28
Откуда: Минск

Re: CodeVision AVR в вопросах и ответах

Сообщение levaclaus »

вопрос,

"мигаю" всем портом D и это работает

PORTB=0x00;
DDRB=0xff;
...

while (1)
{

PORTB=0xff;
delay_ms(500);
PORTB=0x00;
delay_ms(500);
};

Как мигать пином 4 на порте D?
пишу

PORTB=0x00;
DDRB=0x10;//конфиг пин 10000 (4) как выход
...
while (1)
{

PORTB.4=1;
delay_ms(500);
PORTB.4=0;
delay_ms(500);
};

И не работает, что неверно?
Я уже месяц бъюсь над прогой, стал разбиратьсь, а оказалось что по одиночке пин не моргает, обидно\\\
Последний раз редактировалось levaclaus Вт ноя 15, 2011 09:27:44, всего редактировалось 1 раз.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

У вас скорее всего мега8. Порт В4 в ней - MISO. В программаторе к этой ножке подключен выход микросхемы. Т.о. после прошивки и выхода мк в рабочий режим имеем два выхода, соединенных вместе. И кто кого передавит дело непонятное. Так что порт моргает, просто отцепите программатор. Ну и вариант второй, мало вероятный: порт паленый.
Docendo discimus
Ответить

Вернуться в «AVR»