-
Data: 2013-02-16 16:27:53
Temat: Fast PWM - trójkąt zamiast sinusa na wyjściu
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Eksperymentuję właśnie z generowaniem przebiegu sinusoidalnego za pomocą
Atmegi8. Oparłem się na drugim przykładzie z tej strony:
http://tinyurl.com/d3tyvex
Przebieg ma być dialtonem o częstotliwości około 425 Hz.
Wzór przebiegu znajduje się w tabeli, wypełnionej w następujący sposób:
for (i=0; i<256; i++) sinus_buffer[i]=128+126*sin(6.26/256*1);
PWM generowany jest za pomocą TIMER1 ustawionego na Fast PWM (tryb 14).
Funkcja włączająca generowanie przebiegu wygląda następująco:
void StartDialtone (void)
{
TCCR1A |= _BV(COM1A1) | _BV(WGM11);
TCCR1B |= _BV(WGM13) | _BV(WGM12) | _BV(CS10);
ICR1 = 255;
OCR1A = 0;
sinus_ind = 0;
TCNT0 = 182;
TCCR0 |= _BV(CS00);
TIMSK |= _BV(TOIE0);
}
Z kolei wyłączająca wygląda następująco:
void StopDialtone (void)
{
TCCR0 &= ~_BV(CS00);
TIMSK &= ~_BV(TOIE0);
TCCR1A &= ~(_BV(COM1A1) | _BV(WGM11));
TCCR1B &= ~(_BV(WGM13) | _BV(WGM12) | _BV(CS10));
ICR1 = 0;
PORTB &= ~_BV(1);
}
Zmiana współczynnika wypełnienia odbywa się w przerwaniu, po
przepełnieniu TIMER0:
ISR (TIMER0_OVF_vect)
{
OCR1A = sinus_buffer[sinus_ind];
if (sinus_ind < 255) sinus_ind++;
else sinus_ind=0;
TCNT0 = 182;
}
Za wyjściem PB1/OC1A znajduje się filtr dolnoprzepustowy RC złożony z
rezystora 330 omów oraz kondensatora 1uF do masy. Za filtrem nie mam
jednak sinusoidy, a coś przypominające trójkąt:
http://imageshack.us/photo/my-images/4/img8927kj.jpg
/
Gdzie mogłem popełnić błąd? Problem będzie leżał raczej po stronie softu
czy sprzętu?
Następne wpisy z tego wątku
- 16.02.13 16:36 Atlantis
- 16.02.13 17:41 Anerys
- 16.02.13 17:46 Atlantis
- 16.02.13 17:52 AlexY
- 16.02.13 18:08 J.F.
- 17.02.13 10:07 Atlantis
- 17.02.13 17:46 AlexY
- 18.02.13 16:02 J.F
- 18.02.13 21:15 Jakub Rakus
- 18.02.13 21:55 Atlantis
- 19.02.13 00:56 Michoo
- 20.02.13 18:20 Atlantis
- 20.02.13 18:32 Atlantis
- 11.03.13 16:43 Michal Schulz
- 11.03.13 16:49 Michal Schulz
Najnowsze wątki z tej grupy
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
- PICkit3 mnie pokonał
- LEDy na choinkę zdechły
- Wtopa LED
- Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- Microsoft, C/C++ na Rust - news
Najnowsze wątki
- 2026-01-14 #Motodziennik test - Jaecoo E5 - słabe auto, słaby elektryk. A ZIMĄ NAWET BARDZO
- 2026-01-14 Piaseczno cd
- 2026-01-14 Robert do ciebie
- 2026-01-14 Prątki to zawalidrogi
- 2026-01-14 Naruszenie immunitetu ZP-RE Romanowskiego bezkarne (umorzenie śledztwa żurkotury)
- 2026-01-14 Prezydent Trzaskowski nie będzie mógł ułaskawić Tuska, Sienkiewicza, Bodnara, ... przed prawomocnym wyrokiem?
- 2026-01-14 Do Kongresu SZAP/USONA Złożono Proj. ,,Ustawy o aneksji i statusie stanowym Grenlandii"
- 2026-01-13 STREFA CZYSTEGO TRANSPORTU. O tym nie mówią nam WŁADZE
- 2026-01-13 To nie koniec
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-13 Elektryk a otwieranie drzwi :-)
- 2026-01-12 Schemat automatyki




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]