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

Thema: Atmega128, Timer2 als PWM mag nicht

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2008
    Ort
    Pohlheim
    Alter
    33
    Beiträge
    240

    Atmega128, Timer2 als PWM mag nicht

    Anzeige

    Praxistest und DIY Projekte
    Hi,

    ich habe einen Atmega128 und wollte den Timer2 PWM für die Displaybeleuchtung nehmen. Mein code:

    Code:
    $regfile = "m128def.dat"
    $crystal = 8000000
    $baud = 9600
    
    $hwstack = 100
    $swstack = 130
    $framesize = 100
    
    $lib "glcd.lbx"
    
    
    Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 3 , Cd = 0 , Wr = 1 , Rd = 5 , Reset = 2 , Fs = 6 , Mode = 8
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    
    Config 1wire = Portc.7
    
    Config Clock = Soft , Gosub = Sectic
    
    Config Timer2 = Pwm , Compare Pwm = Clear Down , Prescale = 256
    Config Timer3 = Pwm , Compare A Pwm = Clear Down , Prescale = 256
    
    Config Serialin = Buffered , Size = 20
    
    Config Portb.7 = Output                                     'displaybelechtung PWM
    
    Displaybeleuchtung = 255
    
    Enable Interrupts
    Enable Timer2
    
    Timer2 = 0
    
    Start Timer2
    Start Adc
    
    .... usw.
    
    Sectic:
    
    Compare2 = Displaybeleuchtung
    
    Return

    Bei jedem Sekundeninterrupt vom externen Uhrenquarz wird der Wert gesetzt... Der Pin funktioniert! Allerdings nicht im PWM Modus. Ich bekomme rein gar nichts raus. Den Teil "enable timer2, "timer2 = 0" und "start timer2" hab ich in einem anderen Forum gelesen. Brachte aber auch keine veränderung.

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Mit ein bischen unterstützung von Google:


    Code:
    $regfile = "m128def.dat"
    $crystal = 8000000
    $baud = 9600
    
    Config Portb.7 = Output
    
    
    Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
    
    
    Do
    Ocr2 = 205
    Loop
    
    End

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2008
    Ort
    Pohlheim
    Alter
    33
    Beiträge
    240
    Hi,

    es lag an dem "clear down"... da musste "clear up" hin. Gibts dafür eine Erklärung? Es müsste doch eigentlich beides möglich sein. Zudem in der Bascom Hilfe auch beides als möglich angegeben ist.

Berechtigungen

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

Solar Speicher und Akkus Tests