jak używać PWM ?

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 11 lis 2009, 12:07

Może być odwrócony ale nie musi, w zależności co jest wpisane do rejestrów COM1A1,
COM1B1, COM1A0,COM1B0 . W dokumentacji jest opisane kiedy sygnał jest odwrócony a kiedy nie. Jak to wygląda w Bascomie to nie wiem.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 11 lis 2009, 12:08

a jeszcze takie pytanie:

w procesorze tiny 2313 PWM1a i PWM1b występują odpowiednio na pinach PortB.0 i PortB.1 ?

Madik
-
Posty: 9
Rejestracja: 07 paź 2009, 17:36
Lokalizacja: Częstochowa
Kontakt:

Post autor: Madik » 11 lis 2009, 12:09

Myślę że przy sterowaniu wentylatorami nie ma sensu się zagłebiać, chociaż warto coś o tym wiedzieć. Przewertuj stronę Atmela

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 11 lis 2009, 12:11

Nie, PB3 i PB4. Na PB1 i PB0 masz komparator analogowy.

Naprawdę zaglądanie do PDF'a nie boli.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 11 lis 2009, 12:11

Madik pisze:Przewertuj stronę Atmela
ciężko u mnie z angielskim, znam tylko podstawy a tłumacz google też nie działa jak należy. trzeba się większości domyślać. dlatego pytam tutaj tych co to znaja z praktyki.
snow pisze:Naprawdę zaglądanie do PDF'a nie boli.
jak wyżej.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 11 lis 2009, 12:21

Kiedyś podawałem ci linka do polskiej dokumentacji Atmega16 zdaje się. Wyjścia peryferiów są zawsze tak samo. Później sugerujesz się tylko rysunkami opisu nóżek z 2 strony każdego PDF'a. Możesz zatem na niej się wzorować ;) Jak byś pisał w C to byś musiał jedynie sprawdzać nazwy rejestrów bo różnią się w procesorach ale zasada pracy każdego z peryferiów jest taka sama. Jak korzystasz z Bascoma to raczej ten problem ci odpada.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 11 lis 2009, 12:23

spoko. dziękuję wsszystkim za odpowiedzi. to rozwiało wiele moich wątpliwości. jeszcze raz dzienx.

Awatar użytkownika
timo66
Moderator
Posty: 1807
Rejestracja: 20 maja 2006, 19:15
Lokalizacja: 66'15" M.a.R.s.
Kontakt:

Post autor: timo66 » 11 lis 2009, 14:15

Tak obserwuje wątek i się zastanawiam co się stanie jak procesor nawali/straci zasilanie , to czy lepiej użyć PNP czy może NPN ?Tu są plusy i tu minusy :razz:

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 11 lis 2009, 14:20

Ciekawe skąd to przekonanie że procesor na wyjściu w stanie awaryjnym zawsze ustawi "1" albo "0" ;)

Awatar użytkownika
timo66
Moderator
Posty: 1807
Rejestracja: 20 maja 2006, 19:15
Lokalizacja: 66'15" M.a.R.s.
Kontakt:

Post autor: timo66 » 11 lis 2009, 14:27

No może nie przekonanie o stanie ale jeśli będzie to w aucie - niekonieczne łatwe warunku "pracy" i przy niezbyt solidnym montażu odpadnie kabelek zasilania , jeśli + to pojawi się minus, jeśli odpadnie minus to pojawi się plus i w sumie tak źle a tak niedobrze. Teraz tak, albo wentylator zacznie kręcić , albo przestanie i w sumie po wyłączeniu zapłonu i tak się wyłączy ale "profesjonalniej" chyba będzie z NPN :?:


ps: z tym stanem to nigdy nie wiadomo :o ja spotkałem się przeważnie z 3,xV ale to też nie reguła

Jony130
Moderator
Posty: 3170
Rejestracja: 11 sie 2005, 16:33
Lokalizacja: wrocław

Post autor: Jony130 » 12 lis 2009, 13:40

Kiedyś popełniłem taki układ do regulacji prędkości wentylatora.
Gdzie zawsze można wstawić termistor.
Program jest z eletrody z tego tematu.
http://www.elektroda.pl/rtvforum/viewto ... 66#4624866

Kod: Zaznacz cały

       $regfile = "attiny13.dat"
$crystal = 9600000

Dim Temp As Iram Byte

Config Pinb.0 = Output
Config Pinb.1 = Output

Tccr0a = &B10100011                                         'PWM
Tccr0b = &B00000001

Didr0 = &B00010000                                          'ADC
Admux = &B00100010
Adcsrb = &B00000000
Adcsra = &B11101000

On Adc Adc_int
Enable Interrupts

Do
Loop

Adc_int:
Temp = 255 - Adch
Ocr0a = Adch
Ocr0b = Temp
Return 
Załączniki
fan_PWM.PNG

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 12 lis 2009, 15:46

to można wywoływać przerwanie od ADC ?

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 12 lis 2009, 15:55


ODPOWIEDZ