Но программу написать будет сложно, ЦМУ и гирлянды совместить это еще легко, а вот генератор - критичное ко времени устройство добавить сложнее.
CodeVision AVR в вопросах и ответах
- Сообщения: 512
- Зарегистрирован: Вт дек 22, 2009 02:24:50
Можно МК нагрузить по полной, это значит delay лишние выбросить, на них только теряется процессорное время.
Но программу написать будет сложно, ЦМУ и гирлянды совместить это еще легко, а вот генератор - критичное ко времени устройство добавить сложнее.
Но программу написать будет сложно, ЦМУ и гирлянды совместить это еще легко, а вот генератор - критичное ко времени устройство добавить сложнее.
- Реклама
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Да ?! это же всего 1 таймер и 0 процессорного времени во время генерации.Avarges писал(а): а вот генератор - критичное ко времени устройство добавить сложнее.
один порт - переключатель гирлянд ( Кстати, можно ли частоту переключения изменять таймером, т.е. вместо задержки delay во включенном состоянии использовать таймер ???)
Можно. Использовать таймер даже желательно.
2-й порт - ЦМУ с прерыванием,
Для чего прерывание? Тем не менее можно.
3-й - генератор прямоугольных импульсов с изменяемой частотой ????
Всеми мусолимуемый ШИМ.
Можно. Использовать таймер даже желательно.
2-й порт - ЦМУ с прерыванием,
Для чего прерывание? Тем не менее можно.
3-й - генератор прямоугольных импульсов с изменяемой частотой ????
Всеми мусолимуемый ШИМ.
Docendo discimus
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
Нашел возможное решение. !)для гирлянды на таймер подавать сигнал с внешнего генератора. Выбрать требуемое деление на входе таймера постоянным. Изменяя частоту внешнего генератора, изменяем время задержки переключения гирлянды.
2) Управлять регистром счета TCNT. Т.е. настроить при помощи входных делителей работу так, чтобы задержка с помощью таймера соответствовала минимальной частоте переключения гирлянд. А затем менять значения регистра TCNT. (Например, TCNT=50). Т.е. переполнение счетчика будет наступать быстрее...
Прерывание в ЦМУ используется для разгрузки МК. Т.е. выполняется какая-либо программа и параллельно таймер (ЦМУ) считает входные импульсы), как только кличество этих импульсов соответствует заданному, таймер "просит" команду прерывания.
По такому принципу работает мышь и клавиатура в компьютере. Поэтому когда комп зависает, курсор мыши продолжает работать
2) Управлять регистром счета TCNT. Т.е. настроить при помощи входных делителей работу так, чтобы задержка с помощью таймера соответствовала минимальной частоте переключения гирлянд. А затем менять значения регистра TCNT. (Например, TCNT=50). Т.е. переполнение счетчика будет наступать быстрее...
Прерывание в ЦМУ используется для разгрузки МК. Т.е. выполняется какая-либо программа и параллельно таймер (ЦМУ) считает входные импульсы), как только кличество этих импульсов соответствует заданному, таймер "просит" команду прерывания.
По такому принципу работает мышь и клавиатура в компьютере. Поэтому когда комп зависает, курсор мыши продолжает работать
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
Скажите, пожалуйста, МК AT mega 16 имеет 3 входа INT (INT0, INT1, INT2). Сколько максимальных внешних прерываний можно реализовать ??? 2 или 3?
- Реклама
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
А если надо больше, то прилепить контроллер прерываний. Супервизор этакий.
ps. Так, мысли вслух.
ps. Так, мысли вслух.
Docendo discimus
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
Т.е. ANO и т.д. ???pyzh_man писал(а):А если надо больше, то прилепить контроллер прерываний. Супервизор этакий.
ps. Так, мысли вслух.
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
1) Какими МК чаще пользуйтесь PIC или AVR ???
2) Какие программаторы используйте ??? И если не секрет
, за сколько брали ???
2) Какие программаторы используйте ??? И если не секрет
cat-dog-god0 писал(а):Скажите, пожалуйста, МК AT mega 16 имеет 3 входа INT (INT0, INT1, INT2). Сколько максимальных внешних прерываний можно реализовать ??? 2 или 3?
не три, а больше.BerZerK-ku писал(а):3
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
Не могли бы вы объяснить как и почему ??? Слишком многовато параметров для меня, я запутался, да и в литературе конкретных и систематизированных ответов нет.Мастер Ломастер писал(а):не три, а больше.
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
Скажите, если совместить ЦМУ с прерыванием и переключатель гирлянд с функцией delay, Будут ли две эти программы конфликтовать между собой ??? И какими могут быть мин. и макс. значения для delay ????
А как тут реализуется ШИМ для каждого канала, ведь в AT mega 16 только 3 таймера /счетчика ??? :
http://radiokot.ru/circuit/light/run/20/
А как тут реализуется ШИМ для каждого канала, ведь в AT mega 16 только 3 таймера /счетчика ??? :
http://radiokot.ru/circuit/light/run/20/
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Заинтересовали , а каким образом внешних прерываний может быть больше, если векторов внешних прерываний три?cat-dog-god0 писал(а):е три, а больше.
есть встроенный компаратор, который имеет 2 входных линии, и его можно настроить так, что по сигналу на одной из них может генерироваться прерывание - это +1.BerZerK-ku писал(а):Заинтересовали , а каким образом внешних прерываний может быть больше, если векторов внешних прерываний три?cat-dog-god0 писал(а):е три, а больше.
есть таймер с режимом захвата, т.е. вход ICP1 - по событию захвата может генерироваться прерывание - это еще +1.
с некоторой натяжкой, допустимой для немгновенной реакции на сигнал, можно использовать вход USART для генерации прерывания - это +0.5 (все-таки реакция не мгновенная будет)
таким образом, для упомянутого контроллера имеется возможность организовать до 5,5 внешних запросов прерываний
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Мда... я то думал. что будет что-то оригинальное, а вы всего лишь о прерываниях периферии.
ну придумайте что-то более оригинальноеBerZerK-ku писал(а):Мда... я то думал. что будет что-то оригинальное, а вы всего лишь о прерываниях периферии.
битва с дураками проиграна, победители торжествуют. слава победителям!
- Сообщения: 244
- Зарегистрирован: Вс янв 09, 2011 00:34:11
Уважаемые коты! Не могли бы вы на пальцах объяснить как использовать таймер/счетчик: как объявлять его, как изменять режимы работы, как делать пред установки, как объявляются функции прерывания в зависимости от режима рвботы таймера/счетчика ???????
-------------------
P.S. Я совсем запутался в регистрах, не понятно какой куда
Вроде с одним разобрался, как оказывается есть еще и еще один...
-------------------
P.S. Я совсем запутался в регистрах, не понятно какой куда
вопрос,
"мигаю" всем портом 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);
};
И не работает, что неверно?
Я уже месяц бъюсь над прогой, стал разбиратьсь, а оказалось что по одиночке пин не моргает, обидно\\\
"мигаю" всем портом 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 раз.
У вас скорее всего мега8. Порт В4 в ней - MISO. В программаторе к этой ножке подключен выход микросхемы. Т.о. после прошивки и выхода мк в рабочий режим имеем два выхода, соединенных вместе. И кто кого передавит дело непонятное. Так что порт моргает, просто отцепите программатор. Ну и вариант второй, мало вероятный: порт паленый.
Docendo discimus


