Ahoj
mam program ktery zajistuje sowtwarovy pwm vcelku dobre.Jediny problem nastane kdyz chci aby soft vykonaval kod v hlavni smycce.Pri simulaci v AVR studio i v realu skace jen po obsluze preruseni a do MAIN LOOPU vubec nezabrousi [code]#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
char RED,PWM = 0;
//Obsluha preruseni TIMER0 pri preteceni
ISR(TIMER0_OVF_vect)
{
TCNT0 = 250;
if ((PWM == 0) && (RED != 0)) PORTB |= 0x01;
if (PWM == RED) PORTB &=~(0x01);
PWM++;
}
void main (void)
{
// inicializace mcu
DDRA = 0xFF; // port A jako vystup
DDRB = 0xFF; // port B jako vystup
DDRC = 0xFF; // port C jako vystup
DDRD = 0xFF; // port D jako vystup
//zhasne vsechny LED
PORTA = 0x00;
PORTB = 0x00;
PORTC = 0x00;
PORTD = 0x00;
//Globalni povoleni preruseni
sei();
//Nastaveni TIMER0 a Preruseni
RED = 255;
TCNT0 = 255;
TIMSK |= (1<<TOIE0) ;
TCCR0 |= (1<<CS01);
//MAIN LOOP
for(;
{
RED++;
_delay_ms(100);
}
}[/code]
administrator: přejmenováno z "Obsluha preruseni a hlavni smycka"