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

ШИМ от atmega8. LED.

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

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

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

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

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

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

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

Atmega8 и ШИМ 20кГц
Подскажите как сделать аппаратный ШИМ на 20 кГц на 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
14.10.2014, 13:44
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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 01:12

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

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

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


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

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

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