FastPWM na ATmega162: blikání LED, příkaz pro bitové operace

Preji hezky den.
Dle datasheetu AtMega162 jsem si vytvoril FastPWM, ktery by mel blikat diodami na portech PORTB,4 a PORTD,4. Frekvence cyklu dle meho je 3 hz, a polovinu casu by to melo svitit a druhou polovinu casu nesvitit. Nicmene diody nesviti vubec.
Oscilator je nastaveny jako vnitrni RC, fuze DIV8 je taky nastaveno, procesor by mel behat tedy na 1Mhz.
Kompatibilita s 161 je vypnuta Jtag taky. programuji pres SPI.
Vim ze je to asi blbost, ale ani pres hledani kde je problem jsem to nedokazal zprovoznit.

#define F_CPU 1000000UL


#define setbit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define clearbit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
#define flipbit(ADDRESS,BIT) (ADDRESS ^= (1<<BIT))
#define checkbit(ADDRESS,BIT) (ADDRESS & (1<<BIT)) 


#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>


void init_timer3_fast_pwm(void)
{
	TCCR3B = (1 << WGM32);						//Nastaveni 8-bit fast PWM
	TCCR3A = (1 << WGM30);						//Nastaveni 8-bit fast PWM
	TCCR3B |= ((1 << CS32)||(1<<CS30));			//Preddelicka 1024
	TCCR3A |= ((1 << COM3A1)||(1 << COM3B1));	// clear on compare set on top
	OCR3A = 0x007F;								//hodnota 1
	OCR3B = 0x007F;								//hodnota 2

}

int main(void)
{
	setbit(DDRB,4);
	setbit(DDRD,4);
	setbit(PORTB,4);
	setbit(PORTD,4);
	_delay_ms(1000);
	flipbit(PORTB,4);
	flipbit(PORTD,4);
	_delay_ms(1000);
	flipbit(PORTB,4);
	flipbit(PORTD,4);
	_delay_ms(1000);
	flipbit(PORTB,4);
	flipbit(PORTD,4);
	_delay_ms(1000);
	flipbit(PORTB,4);
	flipbit(PORTD,4);
	_delay_ms(1000);
	flipbit(PORTB,4);
	flipbit(PORTD,4);
	init_timer3_fast_pwm();
	for(;;)
	{
	}
}

Mockrat dekuji za pomoc

:arrow_right: administrator: přejmenováno z "PWM pro testovani nefunguje"

Tak jsem tu funkci zmenil na

[code]void init_timer3_fast_pwm(void)
{

setbit(TCCR3B,WGM32);
setbit(TCCR3A,WGM30);
setbit(TCCR3B,CS32);
setbit(TCCR3B,CS30);
setbit(TCCR3A,COM3A1);
setbit(TCCR3A,COM3B1);

OCR3A = 0x007F;								//hodnota 1
OCR3B = 0x001F;								//hodnota 2

}
[/code]
a uz to funguje…
No holt clovek se s tim cely den babra, potom to hodi na forum a sam si to taky vyresi… Stejne by me zajimalo, kde mam chybu.

Při nastavování bitů se používají bitové operace (| - jedno svislítko), nikoli logické (|| - dvojité).

Jdu vratit diplom… Takova blbost.
Z toho plyne pouceni, nepracovat prilis dlouho na jednom problemu…