mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM-Modus und ADC bei ATTtiny 26


Autor: Ralf Meiberg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich hoffe, daß mir hier jemand mit nützlichen Tips bei meinen Problemen 
weiterhelfen kann.

Ich benutze den Attiny26 und benutze den Timer/Counter1 im PWM-Mode.Ich 
habe bisher nur ein PWM-Signal (OC1A) und das invertierte (^OC1A) 
benötigt. Diese beiden Signale brauche ich für meine MosFET's in meinem 
DCDC-Wandler. Nun brauche ich aber für meine Ladungspume, welche den 
Verpolschutz ansteuert noch ein getaktetes Signal. Darum wollte ich auch 
noch den zweiten PWM des Attiny's benutzen. Dafür habe ich das Bit 
COM1B1 und PWM1B im Register TCCR1A gesetzt und auch das Register OCR1B 
mit dem passenden Wert geladen. Eigentlich sollten jetzt an meinen Pins 
PB0, PB1 und PB3 drei PWM_Signale anliegen. Leider kann ich  aber 
weiterhin nur die Signale an PB0 und PB1 sehen.

Wo liegt mein Fehler? Ist es überhaupt möglich beide PWM-Register 
gleichzeitig zu nutzen?


Desweiteren hab ich eine Frage bezüglich des ADC. Bisher lese ich nur 
einen Wert mittels Interrupt  ein. Nun muß ich aber 5 verschiedene 
Spannungswerte einlesen. Der Attiny bietet zwar 11 ADC-Eingänge, aber es 
gibt ja nur einen ADC-Interrupt. Wie würdet Ihr dieses Problem lösen. 
Ich habe mir überlegt den ADC im Free-Running-Mode zu betreiben und dann 
die Eingänge im Polling abzufragen. Gibt es vielleicht eine bessere 
Lösung?


Als letztes noch der Code für die PWM:

;*** Initialisierung Timer/Counter1 -> PWM ***

  ldi temp, 0b01100011 ;Com1A0, PWM1A, PWM1B set
                             ;=>  OC1A (^PB0,PB1)
  out TCCR1A, temp

  ldi temp, 0b00000011 ;CS11, CS10 set => PCK/4
   out TCCR1B, temp

  ldi temp, 0b10011111; ;Timer/Counter Prescale
                              ;=> OCR1C=159d => 100kHz
  out OCR1C, temp

  ldi temp, 0b01100100  ;compare register
  out OCR1A, temp

  ldi temp, 0b01100100
  out OCR1B, temp


Ich weiß, das waren jetzt viele Fragen, aber trotzdem hoffe ich, daß 
vielleicht einer von Euch einen guten Tip für mich hat dieses Problem zu 
lösen.

Danke schon im voraus (allein fürs lesen)

MfG

Ralf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.