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

Thema: PWM mit Timer1 Atmega8 in Assembler

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Searcher,
    habe gleich Deine Mitteilung ausgedruckt um es später zu verarbeiten...Danke Dir!

    Zwischenzeitlich habe ich aus meinen Buch etwas entdeckt, was ich umgebaut habe.
    Sieht so aus:

    sbi DDRB,PB1 ; PB1 ist Ausgang OC1A
    sbi DDRB,PB2 ; PB2 ist Ausgang OC1B

    .equ WertH = 100 ; Konstante für OCR1AH u. OCR1BH (r16)
    .equ WertL = 120 ; Konstante für ICR1H (r16)
    .equ Wert = 70 ; Konstante für OCR1AL u. OCR1BL u.ICR1L (r17)


    ; Timer1 PWM programmieren
    clr akku ; Steuerbits einsetzen
    ori akku,(1 << COM1A1) | (0 << COM1A0) ; nicht inv.
    ori akku,(1 << COM1B1) | (1 << COM1B0) ; inv.
    ori akku,(1 << WGM11) | (0 << WGM10) ; PWM 9Bit phasenrichtig
    out TCCR1A,akku ; Steuerregister A Timer1

    ldi akku,0b001 ; Taktteiler :1
    ori akku,(1 << WGM13) ; variable Frequenz durch ICR1 ;
    out TCCR1B,akku ; Steuerregister B Timer1 start


    ldi akku,WertH ; r16 auf 100
    ldi r17,Wert ; r17 auf 70

    out OCR1AH,akku ; Kanal A = 100
    out OCR1AL,r17 ;

    out OCR1BH,akku ; Kanal B = 100
    out OCR1BL,r17 ;

    ldi akku,WertL ; r16 auf 120
    out ICR1H,akku
    out ICR1L,r17


    loop:
    rjmp loop ;
    .EXIT ; Ende des Quelltextes

    die Konstanten habe ich vorgegeben und das Ganze aus der Loop Schleife
    herausgenommen.
    Die beiden LEDs blinken an PB1+PB2 unterschiedlich, da ja in den beiden Registern eine
    Invertierung vorliegt.
    Entferne ich die Vorgabe in ICR1H und L ist tote Hose, d.h die LEDs lassen sich mit den OCR1xx Registern
    nur noch auf HIGH / LOW schalten.
    Wiegesagt, das ist ein Wahnsinn, was sich hier abspielt, ob ich das in meinen Alter noch begreife?
    Aber so schnell geb ich nicht auf.

    Grüße

    Rolf

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    20.08.2011
    Beiträge
    61
    Hallo Searcher,
    sorry, das ich Dich schon wieder nerve!
    Jetzt stehe ich richtig auf dem Schlauch. Hab mich erst mal nur mit Kanal A beschäftigt und die LED
    an OC1A rührt sich zum verrecken nicht, d.h. dunkel.
    Hab nach Deinen Vorschlag WGM12+10 auf 1 gesetzt.
    Hab die Bits COM1A1+A0 in allen Möglichkeiten auf HIGH/LOW gesetzt.
    (ich glaube COM1A1=1 / COM1A0=0 leuchtet die LED konstant.
    Die Konstante WertH=100 habe ich versuchsweise in OCR1AL bzw. AH gesetzt
    Fazit<<<<es rührt sich nichts!
    Die Seite 97 habe ich mir angesehen
    .equ WertH = 100

    ; Timer1 PWM programmieren (WGM12 und WGM10=1<<PWM 8Bit fast,Top=0x00FF)
    clr akku ; Steuerbits einsetzen
    ori akku,(0 << COM1A1) | (1 << COM1A0) ; nicht inv.
    ori akku,(0 << COM1B1) | (0 << COM1B0) ; inv.
    ori akku,(0 << WGM11) | (1 << WGM10)
    out TCCR1A,akku ; Steuerregister A Timer1

    ldi akku,0b001 ; Taktteiler :1
    ori akku,(0 << WGM13) | (1<<WGM12)
    out TCCR1B,akku ; Steuerregister B Timer1 start


    ldi akku,WertH ; r16 auf 100

    out OCR1AL,akku ; Kanal A = 100

    loop:
    rjmp loop ;
    Was mach ich nur falsch, hab nun alle Möglichkeiten geprüft.

Ähnliche Themen

  1. 2x PWM mit Timer1 auf ATmega48
    Von Jacob2 im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 12.05.2011, 17:15
  2. PWM mit ATMEGA644p mit timer0, timer1 und timer2
    Von lebratmaxe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 29.07.2010, 18:42
  3. Erzeugung von Rampen mit Timer1(ATmega8)
    Von Viktor im Forum C - Programmierung (GCC u.a.)
    Antworten: 13
    Letzter Beitrag: 21.11.2008, 17:27
  4. Servosteuerung mit PWM von Timer1
    Von Hendrix85 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 17.12.2007, 17:08
  5. Fast PWM mit Timer1
    Von tschensen im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 01.05.2006, 20:22

Berechtigungen

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

Labornetzteil AliExpress