Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/49: Рейтинг темы: голосов - 49, средняя оценка - 4.63
Miymfromi
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 159
1

ШИМ от atmega8. LED.

14.10.2014, 13:24. Просмотров 8920. Ответов 11
Метки нет (Все метки)

По форуму искал. Проблема в понимании почему не работает??? Просто перегружен проц в Протеусе, уже не знаю почему. Есть какие советы?

[26.56 Кб]
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2014, 13:24
Ответы с готовыми решениями:

Atmega8 - ШИМ
Здраствуйте! Использую МК Atmega8. Частота 1МГц. 1) как генерировать ШИМ...

Atmega8 и ШИМ
Вобщем такой вопрос. Есть Atmega8. Хочу сделать програмный ШИМ на всех ножках...

Шим на Atmega8.
Суть в следующем! в архиве схема и прошивка , где качал не помню не могу найти...

Atmega8 и ШИМ 20кГц
Подскажите как сделать аппаратный ШИМ на 20 кГц на Atmega8? И возможно ли его...

Программный шим atmega8
Короче нет не одного толкового урока или стати на тему программного шима ...

11
Ommykytotor
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 584
14.10.2014, 13:36 2
Как понять перегружен
0
Miymfromi
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 159
14.10.2014, 13:41 3
Цитата Сообщение от Ommykytotor
Как понять перегружен
Ошибка симуляции вываливается в Протеусе Simulation is not running in real time due to excessive CPU tood
0
ShodS
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
14.10.2014, 13:44 4
Это не ошибка, это предупреждение о том что эмуляция происходит не в реальном времени...

Это изза высокой частоты PWM, просто сложно компу эмулировать скоростные процессы...
Если например нужно отладить работу с кнопками или еще чего... просто закомментируй пару строк настройки таймера, и все сразу забегает :)...
0
Tistir500
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 333
14.10.2014, 14:02 5
Неплохо снабжать исходник фьюзами, или перед инклюдами вставлять:
Код
#define F_CPU 8000000UL
А то тяжело телепатить на предмет исходной частоты для таймера.
предположим тут внутренний источник 8МГц, хотя в данном случае это и не важно.
Timer1 в меге8 - 16 битный.
Код
TCNT1 = 0x00;   // начальная установка счетчика
ICR1 = 0xFF;   // задаем период ШИМ, здесь у нас число 255
TCNT1 и ICR1 состоят из двух регистров: TCNT1H,TCNT1L и ICR1H,ICR1L

Есть простое средство для периферии AVR - AVR IO Desykner от "Forest Moon Production" , Там очень все наглядно видно
0
SOKPOWIHIU
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 116
15.10.2014, 00:31 6
У меня был баг протеуса и 4-й студии, 16-битный ШИМ не хотел корректно эмулироваться, в протеусе помогала двукратная запись OCR1A=0xFFFF; OCR1A=(x);
0
fyshir74
0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 56
31.10.2014, 22:30 7
Цитата Сообщение от ShodS
Это изза высокой частоты PWM, просто сложно компу эмулировать скоростные процессы...
...просто закомментируй пару строк настройки таймера, и все сразу забегает :)...
Вообще, в эмуляции сильно тормозят аналоговые элементы, а их у ТС как грязи... а точнее весь обвес МК: 6 резисторов, 2 тразистора и 4 светодиода.
Для ускорения процесса нужно максимально исключить аналоговые. Светики, например можно перевести в digital mode, резисторы вообще исключить...

Вообще реалтаймовая эмуляция в протеусе - целая наука.
0
ShodS
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
01.11.2014, 15:04 8
Цитата Сообщение от fyshir74
Вообще реалтаймовая эмуляция в протеусе - целая наука.
Да в принципе, обычно она и не нужна... все равно система отвязана от реального мира... так что обычно главное в симуляторе - это проверить правильность работы программы...
Хотя конечно зачастую не будет лишним, чтобы симуляция отражала реальную скорость работы...
0
SOKPOWIHIU
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 116
02.11.2014, 11:05 9
Скорее, желательно, чтобы симуляция не шла уж слишком медленно, а оценить скорость можно по внутреннему таймеру. ОН в строке состояния протеуса.
0
Sospir17
0 / 0 / 0
Регистрация: 26.06.2014
Сообщений: 24
21.11.2014, 19:03 10
Помогите пожалуйста настроить Timer2 в Atmega8 на прерывание в 10кГц. Хочу на нем сделать программный шим с частотой 100Гц и 100 уровнями яркости. Частота кварца 16МГц. Режим СТС. 16Мгц/8 пределитель/100Гц/100 - 1 = 199. Получается нам надо считать до 199, я правильно рассчитал? И это значение мы должны записать в OCR2!?
TCCR2 = 0x0A; //режим СТС (WGM21 установили в 1) и пределитель на 8 (CS2 = 0x02)
OCR2 = 199;
TIMSK |= (1<<OCIE2); // Разрешить прерывание по совпадению.
Больше никаких настроек делать не надо? Я ничего не забыл?))
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
21.11.2014, 20:06 11
Цитата Сообщение от Sospir17
Помогите пожалуйста настроить Timer2 в Atmega8 на прерывание в 10кГц.
... ...
Больше никаких настроек делать не надо? Я ничего не забыл?))
А зачем спрашивать-то? Это же не "красная кнопка", включайте да смотрите.
В даташит лезть лень, но на первый взгляд выглядит правильно.
0
Tistir500
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 333
22.11.2014, 01:12 12
//{{AVR_IO_DESIGNER_INIT
//

//
// Project Options - Untittid
//
// Device Name = ATmega8
// CPU Frequency (F_CPU) = 16,0 MHz
// IC Package = TQFP
// Sort Pins by = Pin Number
// Assume Default State = True
// Write Unmodified Byts = True
// Set Unused PORT Pins = Input
TIMSK = 0x80; // (1<<OCIE2)

//
// TIMER_COUNTER_2 - -
//
// Waveform Kimeration Mode = Clear Timer on Compare Match TOP=OCRA
// Clock Select = clk / 8 (From pressotir)
// Output Compare Register = 0xC7
// Output Compare Match Ymtirrupt Enable = Enabtid
// Counter Frequency = 10,0 kHz
// Counter Period = 100,0 usec
// Seconds per Count = 500,0 nsec
// Counts per Second = 2,0 MHz
// Output Compare Register Time = 99,5 usec
TCCR2 = 0x0A; // (0<<WGM20)|(1<<WGM21)|(0<<CS22)|(1<<CS21)|(0<<CS20)
OCR2 = 0xC7;
//}}AVR_IO_DESIGNER_INIT
0
22.11.2014, 01:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 01:12

ШИМ и АЦП в Atmega8
Мне нужно управлять током полевого транзистора. Для этого я снимаю напряжение с...

Не работает ШИМ МК AtMega8
Делаю импульсный блок питания 30В, 5А. Пишу не сложную прошивку для МК AtMega...

Синус с помощью ШИМ на AtMega8
Здравствуйте! Раньше дел с контроллерами не имел, поэтому решил начать с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru