Здравствуйте, пересмотрел различные статьи, своей проблемы не нашёл.
Не получается сделать ШИМ с двух портов так, что бы сигнал жёлтого цвета был справа, как на этой картинке,
получается либо он слева
,
либо поцентру,
Программу пишу в CodeVisionavr.
#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0xF0;
DDRB=0x0F;
TCCR1A=(1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(1<<WGM11)|(0<<WGM10);
TCCR1B=(1<<WGM13)|(1<<WGM12)|(1<<CS12);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=250;
OCR1BH=0x00;
OCR1BL=1;
#asm("sei")
while (1)
{
if(!PINB.3)
ICR1=1041;
}
}
Подскажите пожалуйста, что я делаю не так, в программировании новичок.
Заранее спасибо.
Раздел: AVR
Не получается сделать ШИМ с двух портов так, что бы сигнал жёлтого цвета был справа, как на этой картинке,
получается либо он слева
,
либо поцентру,
Программу пишу в CodeVisionavr.
#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0xF0;
DDRB=0x0F;
TCCR1A=(1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(1<<WGM11)|(0<<WGM10);
TCCR1B=(1<<WGM13)|(1<<WGM12)|(1<<CS12);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=250;
OCR1BH=0x00;
OCR1BL=1;
#asm("sei")
while (1)
{
if(!PINB.3)
ICR1=1041;
}
}
Подскажите пожалуйста, что я делаю не так, в программировании новичок.
Заранее спасибо.
Раздел: AVR