БыÑтрый ШИМ
Материал из Automata.
(Различия между версиями)
м (Полностью удалено содержимое страницы) |
м (Правки Kern (обсуждение) откачены к версии Mrsnaut) |
||
Строка 1: | Строка 1: | ||
+ | #include <stdint.h> | ||
+ | #include <avr/io.h> | ||
+ | #include <avr/interrupt.h> | ||
+ | //главная функция; | ||
+ | int main (void) | ||
+ | { | ||
+ | DDRB = 0xff;//порт В настраиваем на выход; | ||
+ | PORTB = 0x00;//отправляем на выводы логический "0"; | ||
+ | DDRD = 0xff;//порт D настраиваем на выход; | ||
+ | PORTD = 0x00;//отправляем на выводы логический "0"; | ||
+ | //10-bit Fast PWM, устанавливается логический "0" на выводе OC1A при совпадениии TCNT1 с OCR1A и | ||
+ | //логическая "1" на OC1A при достижении TCNT1 своего масимума, задаем предделитель = 256; | ||
+ | TCCR1A = _BV(COM1A1) | _BV(WGM11) | _BV(WGM10); | ||
+ | TCCR1B = _BV(WGM12) | _BV(CS12); | ||
+ | //1023 ~ 5.0v; | ||
+ | //255 ~ 1.25v; | ||
+ | OCR1A = 255; | ||
+ | } |
Текущая версия
#include <stdint.h> #include <avr/io.h> #include <avr/interrupt.h>
//главная функция; int main (void) { DDRB = 0xff;//порт В настраиваем на выход; PORTB = 0x00;//отправляем на выводы логический "0"; DDRD = 0xff;//порт D настраиваем на выход; PORTD = 0x00;//отправляем на выводы логический "0"; //10-bit Fast PWM, устанавливается логический "0" на выводе OC1A при совпадениии TCNT1 с OCR1A и //логическая "1" на OC1A при достижении TCNT1 своего масимума, задаем предделитель = 256; TCCR1A = _BV(COM1A1) | _BV(WGM11) | _BV(WGM10); TCCR1B = _BV(WGM12) | _BV(CS12); //1023 ~ 5.0v; //255 ~ 1.25v; OCR1A = 255; }