Я всех категорически приветствую. Передо мной поставили задачу: реализовать на микрухе ATMega48PA ШИМ генератор скважность которого можно изменять потенциометром, а также на другом выходе этой микрухи сделать генерацию импульсов длительностью 100микросекунд (+/-20мкс), генерироваться они должны 1 раз в 4 секунды. с ШИМ проблем не возникло, а, вот, с импульсами ничего не выходит
Код:
#define F_CPU 8000000UL #define XTAL 8000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> static uint8_t s; void timer0_init (void){ DDRD=(1<<PD0); /* PD0 в режим выхода*/ TCCR0B|=(1<<CS02)|(1<<CS00);/*Предделитель = 1024*/ TIFR0 = (1<<TOV0);/*флаг прерывания по переполнению*/ TCNT0 = 255; s = 0; TIMSK0=(1<<TOIE0);//прерывание по переполнению таймера 1 sei();//Разрешить прерывания } ISR(TIMER0_OVF_vect) { PORTD=(1<<s);
s++; if(s==120) {
s=0;
} TCNT0= 255;/*начальное значение таймера*/
}
int main(void) { timer0_init(); while(1) { } }
попытался сделать через прерывания по переполнению таймера 0, но никак не получается сделать требуемый период. подскажите, что не так
Заголовок сообщения: Re: Генератор, скважность которого можно изменять потенциоме
Добавлено: Пт апр 12, 2019 16:24:36
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
volatile static uint8_t s; upd: Хотя volatile тут не нужен, тут правильнее объявить s статичной, но внутри обработчика прерывания.
Добавлено after 2 minutes 56 seconds: Re: Генератор, скважность которого можно изменять потенциометром PORTD=(1<<s); А это что такое?
Добавлено after 1 minute 15 seconds: Re: Генератор, скважность которого можно изменять потенциометром TCNT0= 255;/*начальное значение таймера*/ А это в обработчике прерывания зачем?
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Последний раз редактировалось Z_h_e Пт апр 12, 2019 16:36:40, всего редактировалось 1 раз.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
значит 1000 импульсов длительностью 100мкс, пауза между импульсами пусть будет то же 100мкс (должна же быть пауза между импульсами?) и вся это пачка импульсов повторяется 1 раз в 4 секунды.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
йзначит 1000 импульсов длительностью 100мкс, пауза между импульсами пусть будет то же 100мкс (должна же быть пауза между импульсами?) и вся это пачка импульсов повторяется 1 раз в 4 секунды.
Нет, один импульс длительностью 100мкс, который повторяется раз в 4 секунды
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения