Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Spi на Avr http://www.cyberforum.ru/avr/thread2087806.html
Здраствуйте, работаю на AVR недавно и появилась необходимость к контроллеру подключить вот такие детальки: http://ru.mousir.com/Seorsh/ProductDetail.aspx?qs=XGzIaZb%2FFYKxM98K2XBhaA%3D%3D из...
Реализация "токовой петли" 4-20mA Atmega AVR микроконтроллер
есть atmego32. нужно "слушать" датчик температуры с реализацией пид-регулятора одним словом заменить martens 5310 <Изображение удалено> ну это я загнул, в перспективе бы. а напока только...
Atmega AVR микроконтроллер регистры OCR1x
Прошу помощи! Уже целый вечер голову ломаю((( Проблема в следующем. Вот кусок года из моей программы (управляет сервоприводами): void ioport_init(void) { DDRB = 0xFF; DDRD = 0x00; } void...
Atmega AVR микроконтроллер Проект на Си, в АВРСтудио - не срабатывает прерывание Привет. Решил тут написать на Си в AVRStudyo то, что перед этим делал на ассемблере. И столкнулся в один прекрасный момент, что при отладке в той же студии почему-то не срабатывает прерывание по... http://www.cyberforum.ru/avr/thread2087803.html
Atmega AVR микроконтроллер оцифровка нескольких сигналов http://www.cyberforum.ru/avr/thread2087802.html
Подскажите, как оцифровать 4 сигнала. Можно ли это сделать на встроенном АЦП и каким контроллером семейства Avr лучше это сделать? Может есть контроллеры с несколькими АЦП на борту?
ЗАпуск кнопчкой (асемблер) Attiny2313. Нужен совет =) Atmega AVR микроконтроллер
Хочу начать изучать программирование мк и первый вопрос, который возник, это включение программы. Допустим напишу первую програмку по загоранию светодиода. И когда будет происходить прошивание, у...
Atmega AVR микроконтроллер кому верить ?
порт б выход порт д вход PB0 светодиод PD0 кнопка main: in demo, PIND sbrc demo, 0 ; если "0" то переходим... rjmp main cbi PORTB, 0 ; ...сюда rjmp main
Atmega AVR микроконтроллер Помогите разобраться с Таймерами АТТини2313 Задача такая: по входу ИНТ0 вызываю подпрограмму прерывания; включаю таймер, начинаю счет времени; выполняю последовательность действий. по завершению этих действий: если таймер насчитал... http://www.cyberforum.ru/avr/thread2087799.html
Atmega AVR микроконтроллер Help!!! Внутренняя опора в Attiny261 http://www.cyberforum.ru/avr/thread2087798.html
Друзья, подскажите, как в девайсе на Attiny261 исправить код программы таким образом, чтобы вместо внутренней опоры по умолчанию на 1.1 V использовать опору на 2.56 V. Интересует конкретная строчка...
Atmega AVR микроконтроллер Внешние прерывания для AtMega16 Всем ,привет!)Подскажите пожалуйста:как правильно написать код программы для внешнего прерывания?Ну к примеру, я хочу, чтобы при поступление "0"(ну или "1") на вход INT0 запускалось прерывание и... http://www.cyberforum.ru/avr/thread2087797.html
Stiit.mi
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
04.05.2011, 21:43 0

Шим на Atmega8.

04.05.2011, 21:43. Просмотров 11554. Ответов 18
Метки (Все метки)

Ответ

Цитата Сообщение от Omdriwtor
Ура на меге 8 всё заработало наконец то! посидел попарился в протосе и вот те результат порадовал!

Уважаемые форумчане посмотрите плиз проект на тиньке 2313 реализация шим (в архиве файлы протоса и исходник) чёт тоже не робит тут источник http://www.avrlab.com/node/52
Бред ваще-то. Работать не будет. Посмотрим на основной цикл:

Код
for (;;)//бесконечный цикл
{
p=pp-i;//реализация
tidon(p);//программного
tidoff(i);//ШИМ
}
переменная i у нас определена один раз (равна 1) и больше нигде не меняется. Что мы имеем - светодиод включается на время pp-1 и выключается на время 1. Причем это время - далеко не миллисекунды.

Второе - это надо как "Отче наш" знать - все переменные, которые меняются в прерываниях надо описывать с ключевым словом volatile. Иначе компилятор имеет тенденцию считать, что раз переменная не меняется в основной программе и нигде явно не вызываются функции с изменением этой переменной, то ее можно просто заменить на константу. И опаньки. Может заменить, а может и не заменить - как карта ляжет.

Из этого следует, что как минимум, чтобы это было хоть как-то похоже на ШИМ, в прерываниях надо изменять переменную i, а не pp

Далее, по мелочи - если это avr-gcc, то у него функция _delay_ms() и _delay_us() и так есть, не надо ничего придумывать. Ну а если уж так хочется nopов, то есть прекрасная функция void __buyltin_avr_delay_cycles(unsykned long __n);

Дальше, при увеличении/уменьшении значения не проверяется достижение границ. Что произойдет, если pp был равен 0, а мы нажмем на минус?

Код
GIMSK=0b11000000; //разрешаем прерывание int0 и int1
MCUCR=0b00001111;// прерывание по возрастающему фронту - для кнопки 1 и 2
назначать нигические числа в принципе может продвинутый джедай, но разобраться в этом - надо поднимать даташит. Использовал бы мнемоники битов, половина вопросов отпала бы. Я вот из лени не буду проверять эти строчки, соответствуют они заявленному функционалу или нет?

Дребезг кнопок. Ну это уже продвинутый уровень

Вернуться к обсуждению:
Шим на Atmega8.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2011, 21:43
Готовые ответы и решения:

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

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

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

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

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

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