Gleichzeitige Erzeugung von Frequenz und PWM

Gast #1188928
Hallo Zusammen,

Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board

ich versuche momentan ein Programm zu erstellen, das mit Timer 1 
(Frequenzerzeugung) und Timer 3 (PWM) realisiert wird. Das Programm habe 
ich zuerst mit Beispielprogramm zusammen aufgebaut und die erzeugten
Signale werden mit HIlfe von Oszi dargestellt. Es funktioniert bei 
Frequenzerzeugung aber nicht bei PWM.

Das Programm von Frequenzerzeugung :

// FRQ1: Frequenzerzeugung (16 Bit)
// Über den Ausgang wird eine Signal mit einer entsprechend 
eingestellter
// Frequenz ausgegeben.
// Über den Timer Prescaler wird das Teilungsverhältnis 
(Oszillatorfrequenz/ps/2)
// festgelegt.(14,7456MHz/ps/2)
/*
Vorteiler (prescaler)   Zeitbasis (Dauer eines Ticks)
PS_1    (1)    136 ns
PS_8    (2)  1,085 µs
PS_64   (3)  8,681 µs
PS_256  (4)  34,72 µs
PS_1024 (5)  138,9 µs
*/
void Frequenzerzeugung(void)
{
    Timer_T1FRQ(10,PS_1024);   // Der Timer erzeugt ein Signal mit
                             // Periode=34,72 µs*10=347,2 µs
    while (1);
}

Das Programm von PWM:

// PWM3: Pulsweitenmodulation
// Berechnung der Pulsweitenmodulation
// Timer_T3PWM(Par1,Par2,PS);
// Periode=Par1*PS/FOSC (100*64/14,7456MHz=434 µs)
// Pulsweite=Par2*PS/FOSC (25*64/14,7456MHz=108 µs)
// Über den Timer Prescaler wird das Teilungsverhältnis 
(Oszillatorfrequenz/ps)
// festgelegt. (14,7456MHz/ps)
/*
Vorteiler (prescaler)   Zeitbasis (Dauer eines Ticks)
PS_1    (1)   67,8 ns
PS_8    (2)  542,5 ns
PS_64   (3)   4,34 µs
PS_256  (4)  17,36 µs
PS_1024 (5)   69,4 µs
*/

// Dieses Demo Programm ist nur für Mega128
#ifdef MEGA32
#pragma Error "Timer3 nur für Mega128"
#endif

void PWM(void)
{
    Timer_T3PWM(100,20,PS_256);  // Berechnung siehe oben
    while (1);
}

und das Hauptprogramm:

void main(void)
{
    Frequenzerzeugung ();
    PWM ();
}

oder sollte ich mit Multithreading realsieren?

vielen Dank im Voraus.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.