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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.