- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 15

Thema: Ewiges Thema Timer und PWM

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.10.2017
    Beiträge
    11

    Ewiges Thema Timer und PWM

    Hallo zusammen,

    ich arbeite mich weiter mit Hilfe eine PIC 18F458 Entwicklungsboard in
    die µC Thematik ein und bin jetz dabei ein 50 kHZ PWM Signal für einen
    PWM Modulator zu erstellen. Es gibt da viel Möglichkeiten und ich habe
    jetzt mal 2 realisiert.

    Einmal über die SETUP_CCP Funktion und einmal über einen Timer
    Interrupt. Das funktioniert soweit, nur bei der Methode mit dem
    Interrupt erhalte ich nicht die berechnete Frequenz. Ich habe wie immer
    schon in diesem Forum und bei Tante Google gesucht aber nichts gefunden
    was mir weiter hilft.

    Code:
    #include <18f458.h>
    #device ICD=TRUE
    #fuses HS,NOLVP,NOWDT,PUT
    #use delay(clock=20000000)
    
    void init_timers()
    {
       SETUP_TIMER_1(T1_INTERNAL);
       SET_TIMER1(65436);
       SETUP_CCP1(CCP_PWM);
       setup_timer_2(T2_DIV_BY_4, 24, 1);
       set_pwm1_duty(1);
    }
    
    #INT_TIMER1
    void timer0_isr()
    {
       SET_TIMER1(65436);    //Einstellen der gewünschten Frequenz
    
       output_high(PIN_D1);  //Einstellen des gewünschten Pulsbreite
       output_high(PIN_D1);
       output_high(PIN_D1);
    
       output_low(PIN_D1);
    }
    
    void main()
    {
       setup_timer_1(T1_DISABLED);
       setup_timer_2(T2_DISABLED,0,1);
    
       SET_TRIS_D( 0x50 );
       SET_TRIS_C( 0x00 );
    
       init_timers() ;
    
       enable_interrupts(INT_TIMER1);
       enable_interrupts(GLOBAL);
    
       While(True);
    }
    Nach meinen Berechnungen müsste 20Mhz/4 => 0,2µs Tick ergeben. 50 kHz
    entsprechen 0,02 ms und somit ergeben sich 0,02ms/0,2µs = 100 Ticks.

    Somit muss ich rechnerisch den Zähler des Interrupts auf 65536-100 =
    65436 einstellen um die gewünschte Frequenz zu erhalten, damit ergeben
    sich leider nicht 50 kHz sondern 33.79kHz.

    Ich muss den Wert auf 65484 einstellen um 50 kHz zu erhalten, ich kann
    den Fehler in meiner Berechnung nicht finden?!

    Kann mir jemand sagen was ich falsch mache oder falsch annehme/
    verstanden habe?
    Geändert von GeoMan (13.11.2017 um 10:42 Uhr)

Ähnliche Themen

  1. Ewiges Leben: Hybrider Lohner-Porsche „Semper Vivus“
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 19.03.2011, 19:00
  2. C167 Drehzahlberechnung mit Timer 3 od. Timer 3 & 4?
    Von cieks0301 im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 13.03.2009, 11:37
  3. fragen zum thema HF
    Von Che Guevara im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 06.01.2008, 04:01
  4. PWM mit Timer 0 und 2 geht, aber nicht mit Timer 1 (mega64)
    Von popi im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 14.06.2006, 17:00
  5. [ERLEDIGT] thema spannungsverdoppler
    Von im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 05.12.2004, 15:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress