zdravim chcem sa spytat ci sa nejako nebudu bit registre ak chcem pouzit T0 a T1 ako pocitadlo a OC1A a OC1B ako pwm pre motory
Fórum › Mikrokontroléry
Atmega32 casovace
![](img/forum_vlakno_help_vyreseno.png)
TIMER0 se s OC1A/B bit urcite nebude, je to jinej hardware.
TIMER1 s pocitadlem bude zalezet na tom, jestli ti bude sedet perioda PWM na interval preteceni pocitadla.
este sa mi stala taka nepochopitelna vecicka aspon pre mna ze mam cyklus
while (freq<=400){
dur=TCNT0;
freq =dur + tot_overflowp*255;
//itoa (freq,pozs,10);
//uart_puts(pozs);
//_delay_ms(50);
}
a ten cyklus akokeby ukonci az ked poslem cez uart udaje ak to tam nemam akokeby ani nevedel ze ta freq stupa ked zakomentujem posielanie tak ide do nekonecna
no tot_overflowp bych nasobil 256 - respektive posun o 8 bitu jako: (unsigned int)TCNT0 + (tot_ovflowp<<8)
tot_overflowp je nejspise v ISR, takze musi byt jako volatile unsigned char/int, jinak se to vyoptimalizuje do registru, a uz se na to nepodiva...
pozor na přetečení použitého datového typu. Pokud je tot_overflowp 8-bitový unsigned int, tak bude provádět 8-bitové násobení a výsledek bude 8-bitový, násobení číslem 255 povede k přetečení. Součin 2 osmibitových operandů může mít až 16 bitů. Řešením je zvolit vhodný datový typ pro proměnnou a nebo přetypovat.
hu
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Podobná vlákna
C# - Vypnutí PC pomocí časovače — založil Hoffik
C++, SDL - nespouští se callback funkce časovače — založil General
ATMega32 displej16x2 — založil Začátečník MEGA32
I2C na Atmega32 — založil Deko
Atmega32 fuses — založil jur3c
Moderátoři diskuze