Forum: Mikrocontroller und Digitale Elektronik TOCPMSA1 und TOCPMCOE Verhalten beim Attiny 841


von Henry (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
Es geht hier um die Register TOCPMSA1, TOCPMSA0 und TOCPMC0E.
Im Datenbaltt des Attiny 841 wird auf den Seiten 115/116 und in der 
Tabelle 12-7 die Benutzung dieser Register gezeigt. In meinem Programm 
habe ich im Timer die folgenden Zeilen drin:
1
//TOCPMSA1|=(0<<TOCC4S1);
2
  TOCPMSA1|=(1<<TOCC4S0);          // Angabe Ausgang PA5
3
  TOCPMCOE|=(1<<TOCC4OE);
Damit soll der PA5 mit einem Timer als Ausgang geschaltet werden.
1
// Impuls starten
2
ISR(TIMER1_COMPA_vect)
3
  {
4
  PORTA |=(1<<PINA5);
5
  }
6
// Impuls stoppen
7
ISR(TIMER1_COMPB_vect)
8
  {
9
  PORTA &=~(1<<PINA5);
10
  }
 Egal ob ich die Zeilen
1
TOCPMSA1|=(0<<TOCC4S1);
2
  TOCPMSA1|=(1<<TOCC4S0);          // Angabe Ausgang PA5
3
  TOCPMCOE|=(1<<TOCC4OE);
verwende oder nicht, PA5 wird trotzdem geschaltet.
Wie kommt das? Müssen diese Zeilen nicht genutzt werden?

von c-hater (Gast)


Lesenswert?

Henry schrieb:

> verwende oder nicht, PA5 wird trotzdem geschaltet.
> Wie kommt das?

Wenn du die Ausgaänge per Software schaltest, spielt es keine Rolle, ob 
die Hardware das ebenfalls tut. Entweder tust du es halt per Software 
oder es tut die Hardware und die Software wird effektiv unwirksam.

Laß' den Softwarekram weg (also die ISRs), dann wirst du den Unterschied 
sehen.

von Henry (Gast)


Lesenswert?

Wozu müssen diese Register denn unbedingt genutzt werden?

von Georg M. (g_m)


Lesenswert?

Henry schrieb:
> Wozu müssen diese Register denn unbedingt genutzt werden?

Der Timer kann den Ausgang selbst schalten (z.B. PWM), und der Prozessor 
muss dabei nicht mit den Interrupts (ISR) ständig belästigt werden.

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.