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


von Ralf Meiberg (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.