roboforum.ru

Технический форум по робототехнике.


МикроКонтроллер AVR начинающим - общие вопросы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение vvk74 » 15 июн 2017, 21:17

//например для ATMEGA48 будет как-то так
//РВ1 (ОС1А) надо сконфигурировать на выход
ICR1=0x270F; //записываем верхнее значение счетчика 9999 для 10 мс периода
TCNT1=0; //сбрасываем таймер
TCCR1A=0x82; //задаем режим работы 14 (fast PWM - TOP ICR1)
OCR1A=0xC8; // записываем длительность импульса 200 (для 200 мкс)
TCCR1B=0x1A; //запускаем с делителем на 8 (для тактовой 8МГц на входе таймера будет 1 МГц) - для 16 МГц значения ICR1 и OCR1A надо увеличить вдвое

Добавлено спустя 18 минут 34 секунды:
void setup() {
// put your setup code here, to run once:
pinMode(9, OUTPUT);
//например для ATMEGA48 будет как-то так
//РВ1 (ОС1А) надо сконфигурировать на выход
ICR1=0x4E1F; //записываем верхнее значение счетчика 9999 для 10 мс периода
TCNT1=0; //сбрасываем таймер
TCCR1A=0x82; //задаем режим работы 14 (fast PWM - TOP ICR1)
OCR1A=0x190; // записываем длительность импульса 200 (для 200 мкс)
TCCR1B=0x1A; //запускаем с делителем на 8 (для тактовой 8МГц на входе таймера будет 1 МГц) - для 16 МГц значения ICR1 и OCR1A надо увеличить вдвоеvvk74

}

void loop() {
// put your main code here, to run repeatedly:

}

проверил на ардуино нано - работает
vvk74
 
Сообщения: 126
Зарегистрирован: 08 сен 2009, 20:13
Откуда: Екатеринбург

Re: МикроКонтроллер AVR начинающим - общие вопросы

Сообщение к561ЛА7 » 16 июн 2017, 10:51

vvk74 писал(а)://например для ATMEGA48 будет как-то так
//РВ1 (ОС1А) надо сконфигурировать на выход
ICR1=0x270F; //записываем верхнее значение счетчика 9999 для 10 мс периода
TCNT1=0; //сбрасываем таймер
TCCR1A=0x82; //задаем режим работы 14 (fast PWM - TOP ICR1)
OCR1A=0xC8; // записываем длительность импульса 200 (для 200 мкс)
TCCR1B=0x1A; //запускаем с делителем на 8 (для тактовой 8МГц на входе таймера будет 1 МГц) - для 16 МГц значения ICR1 и OCR1A надо увеличить вдвое

Добавлено спустя 18 минут 34 секунды:
void setup() {
// put your setup code here, to run once:
pinMode(9, OUTPUT);
//например для ATMEGA48 будет как-то так
//РВ1 (ОС1А) надо сконфигурировать на выход

Спасибо

ICR1=0x4E1F; //записываем верхнее значение счетчика 9999 для 10 мс периода
TCNT1=0; //сбрасываем таймер
TCCR1A=0x82; //задаем режим работы 14 (fast PWM - TOP ICR1)
OCR1A=0x190; // записываем длительность импульса 200 (для 200 мкс)
TCCR1B=0x1A; //запускаем с делителем на 8 (для тактовой 8МГц на входе таймера будет 1 МГц) - для 16 МГц значения ICR1 и OCR1A надо увеличить вдвоеvvk74

}

void loop() {
// put your main code here, to run repeatedly:

}

проверил на ардуино нано - работает
О любимый мой учитель АВР 123
Надавал ты мне советов, и что вышло, посмотри
Я теперь паяю платы, программирую МК
Заказал я их по почте, у Семенова М.К.
Аватара пользователя
к561ЛА7
 
Сообщения: 363
Зарегистрирован: 08 дек 2009, 19:21
Откуда: Й-Ола

Пред.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и гости: 3

Mail.ru counter