Attiny13 PWM generieren

Gast #337932
Lesenswert?

Hallo.
Bin gerade dabei ein Projekt zur Motoransteuerung mittels ATtiny13 zu
realisieren.
Leider bekomme ich die Geschichte mit der PWM in Assembler nicht auf
die Reihe. Assembler muss es leider sein, da ich höhere
Programmiersprachen wie C nicht beherrsche.
Es Wäre nett, wenn mir jemand weiterhelfen könnte, oder sogar ein Stück
Assemblercode für mich hätte, wie ich eine PWM mittels ATtiny13
realisieren kann.
Die Anleitung auf der Seite hilft mir auch insoweit nicht weiter, da
ich beide PWM Ausgänge abwechselnd nutzen Möchte. Da bringt mich das
Beispiel doch etwas durcheinander.
Wäre super, wenn mir jemand weiterhelfen könnte.


Danke.
Jörg
Angehängte Dateien:
Gast #337935
Lesenswert?

Kann ich mit dem untenstehenden code schon eine PWM erzeugen und mit
Veränderungen in den Registern Org0a und Org0b die Pulsweite an den
beiden Ausgängen modulieren? Sorry wenn ich grade nervig werde.
Mich überkommts einfach gerade etwas.






#include <tiny13.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 4
#pragma optsize-
CLKPR=0x80;
CLKPR=0x02;
#ifdef OPTIMIZE_SIZE
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out
// State5=T State4=T State3=T State2=T State1=0 State0=0
PORTB=0x00;
DDRB=0x03;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 31,250 kHz
// Mode: Fast PWM top=FFh
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA3;
TCCR0B=0x02;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

while (1)
      {
      // Place your code here

      };
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren