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
administrator: přejmenováno z "PWM pro testovani nefunguje"