ATmega128 - funguje mi jen jedno PWM

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#16 Příspěvek od endthe »

Andrea píše:V nastavení máš pomotané registry TCCR1A, B a C.

A jestli dobře počítám, tak ti to při 16MHz generuje 100Hz a ne 50.


jo mas pravdu melo by tam byt 40000
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#17 Příspěvek od endthe »

Andrea píše:No sláva a ještě co do TCCR1A.


no to by melo byt

Kód: Vybrat vše

TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(0<<COM1B1)|(1<<WGM11)|(0<<WGM10);
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#18 Příspěvek od Andrea »

endthe píše:
Andrea píše:No sláva a ještě co do TCCR1A.


no to by melo byt

Kód: Vybrat vše

TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(0<<COM1B1)|(1<<WGM11)|(0<<WGM10);

No ale to ti poběží zase jen ta jedna PWM.
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#19 Příspěvek od endthe »

sakra :(
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#20 Příspěvek od endthe »

Andrea píše:
endthe píše:
Andrea píše:No sláva a ještě co do TCCR1A.


no to by melo byt

Kód: Vybrat vše

TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(0<<COM1B1)|(1<<WGM11)|(0<<WGM10);

No ale to ti poběží zase jen ta jedna PWM.


pak uz me napada jen pouzit to takto:

Kód: Vybrat vše

TCCR1A |= (1 << COM1A1)|(1 << COM1B1)|(1 << COM1C1); 
 TCCR1B |= (1 << CS11)|(0 << CS11)|(1 << CS12);
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#21 Příspěvek od Andrea »

Stačí zapnout tu druhou PWM :wink:
TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(1<<COM1B1)|(1<<WGM11)|(0<<WGM10)
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#22 Příspěvek od endthe »

Andrea píše:Stačí zapnout tu druhou PWM :wink:
TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(1<<COM1B1)|(1<<WGM11)|(0<<WGM10)


aha dik
Návštěvník

#23 Příspěvek od Návštěvník »

TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(0<<COM1B1)|(1<<WGM11)|(0<<WGM10);

Výrazy (0<<x) tady nic nedělají. Pokud je bit v "1", tak ho nevynulují.
Takže příkaz výše je stejný jako
TCCR1A|=(1<<COM1A1)|(1<<WGM11);
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#24 Příspěvek od endthe »

to jo ale takto je to nazornejsi a navic by ti jelo jen jedno PWM na OC1A
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#25 Příspěvek od endthe »

Tak uz to dela co ma a moc dekuji za navedeni. dekuji Andrejko a prikladam celej kod uz je to i otestovane primo pres pole
Uživatelský avatar
endthe
Příspěvky: 56
Registrován: 07 bře 2009, 00:00
Bydliště: Brno
Kontaktovat uživatele:

#26 Příspěvek od endthe »

slibovanej kod ale je nutne pouze zmenit priponu z *.txt na *.c
Přílohy
Servo_manual_PWM.txt
(5.11 KiB) Staženo 126 x
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“