Witam.
Mam Pewien problem odnośnie PWM w ATmega8.
Oto fragment programu testowego
którego symulacje przeprowadzam w AVRStudio 4. Po ustawieniu pinu 2 w porcie C, w moim mniemaniu wartość OCR1A powinna się zmieniać ale tylko w chwilach gdy licznik osiąga wartość maksymalną. Natomiast ta wartość zmienia się na bieżąco.
Stąd moje pytanie jest następujące: co należy zrobić\poprawić aby efekt był taki jak zamierzony, czyli ta wartość zmieniała się tylko w chwilach gdy licznik osiąga wartość max?
Z góry dziękuje za pomoc.
I proszę nadgorliwych
o nieodsyłanie mnie do datasheetów i tym podobnych rzeczy, ponieważ przejrzałem już je wiele razy. Słabo znam ang dlatego nie rozwiązało to problemu
Mam Pewien problem odnośnie PWM w ATmega8.
Oto fragment programu testowego
#include "avr/io.h"
int main()
{
OCR1B=120;
OCR1A=50;
DDRB=0xff;
DDRC=0x00;
PORTC=0xff;
TCCR1A |=(1<<COM1A1) | (1<<COM1A0) |(1<<COM1B1) | (1<<COM1B0) |(1<<WGM10)|(1<<WGM11);
TCCR1B |=(1<<CS10);
while(1)
{
if(PINC & (1 << 2) && (OCR1A < 1023)) OCR1A+=1;
if(PINC & (1 << 3) && (OCR1A > 997)) OCR1A-=50;
}
return 0;
}
którego symulacje przeprowadzam w AVRStudio 4. Po ustawieniu pinu 2 w porcie C, w moim mniemaniu wartość OCR1A powinna się zmieniać ale tylko w chwilach gdy licznik osiąga wartość maksymalną. Natomiast ta wartość zmienia się na bieżąco.
Stąd moje pytanie jest następujące: co należy zrobić\poprawić aby efekt był taki jak zamierzony, czyli ta wartość zmieniała się tylko w chwilach gdy licznik osiąga wartość max?
Z góry dziękuje za pomoc.
I proszę nadgorliwych