PWM, AVR & AVR-Studio

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

PWM, AVR & AVR-Studio

Inlägg av Ulf »

Håller på att lära mig hur pwm fungerar med timer 1.
Detta för att jag behöver 2-pwm utgångar. Jag har satt följande bitar:

COM1A1
COM1B1
WGM11
WGM12
WGM13
CS10

ICR1 använder jag för TOP-värde. Men jag lyckas inte få in några värden på OCR1A och OCR1B. TOIE1 är också satt, men det blir bara interrupt ibland.
Är det AVR-Studio som är problemet, eller?

Koden är som följer:

Kod: Markera allt

void dotest(void)
{
	uint16_t i;
	i++;
}


ISR(TIMER1_OVF_vect)
{
	dotest();
}


void initPorts( void )
{
TCCR1A &= ~(1<<COM1A0);
TCCR1A |= (1<<COM1A1);
TCCR1A &= ~(1<<COM1B0);
TCCR1A |= (1<<COM1B1);

TCCR1A &= ~(1<<WGM10);
TCCR1A |= (1<<WGM11);

TCCR1B |= (1<<WGM12);
TCCR1B |= (1<<WGM13);
TCCR1B |= (1<<CS10);
TCCR1B &= ~(1<<CS12);
TCCR1B &= ~(1<<CS12);

}


int main(void)
{
	initPorts();

	ICR1 = 4096;
	OCR1A = 2048;
	OCR1B = 1024;

	TIMSK |= (1<<TOIE1);	
	sei(); //Enable global interrupts
	
	while( 1 )
	{
	}
	return 0;
}
Senast redigerad av Ulf 24 juni 2007, 00:59:34, redigerad totalt 2 gånger.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Använd code-taggarna så blir det mycker mer läsbart! :)
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

Inlägg av Ulf »

Done, hade inte en tanke på det!
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

Inlägg av Ulf »

Var trött igår, glömde nämna att det är en ATmega8535 jag tänkt att köra på. Det funkade en sväng i morse, fast bara nästan. Det verkar som om den räknar upp och sedan ner, men den ska bara räkna upp när det inte är "Phase corrected" pwm. Det är mode 14 jag försöker med.

Blir nog till att beställa och köra på en riktig...
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Inlägg av BEEP »

AVR Studio - Known Issues - Simulator

Timer/Counters
16-bit Timer/Counters on all devices have several problems with PWM, prescaler and output compare. Output compare registers are not buffered properly.

The Asynchronous Status Register (ASSR) is not supported in timers with asynchronous mode. This is due to lack of a generic external clock implementation.
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

Inlägg av Ulf »

Jaha, testade oxå AVR IDE simulator, räknaren funkade inte ens dåligt... .
Beställer grejer ikväll!
Skriv svar