Forum: Mikrocontroller und Digitale Elektronik IO-Port Mapping


von Alex Z. (alexander_z49)


Lesenswert?

Hallo,

ich habe mich, nachdem ich immer nur mit Arduino und fertigen Funktionen 
gearbeitet habe, an einen Attiny45 rangemacht. Programmieren mit ISP und 
Atmel Studio 6 funktioniert gut, auch wenn die Handhabung etwas 
umständlich ist(Kompilieren, Fenster für den Programmer öffnen, Tab 
auswählen, Hochladen).

Einfaches Blinken lassen mit delay und Ports und Pins setzten ging 
wunderbar. Timer und Hardware PWM haben auch geklappt. An den Interrupts 
bin ich grad dran. Bei der Arbeit mit den Timern und dem suchen im 
Datasheet hat sich dann folgendde Frage ergeben:

Was mache ich wenn ich ich z.b. alle 2 Timer mit je 2 kanälen benutzten 
will? OC0B und OC1A liegen auf dem gleichen Pin.

Benutze ich dann die TimerInterrupts um einen anderen freien IO-Pin zu 
schalten oder gibt es da andere Vorgehensweisen?
In wie weit ist eine Lösung mit Interrupts dann langsamer als eine reine 
Hardwarelösung, hat da wer Erfahrungen?

Alex

von Tim (Gast)


Lesenswert?

>Was mache ich wenn ich ich z.b. alle 2 Timer mit je 2 kanälen benutzten
>will? OC0B und OC1A liegen auf dem gleichen Pin.

Dumm gucken, dann nochmal über die schaltung nachdenken.
Im Hobby bereich macht es keinen Sinn sich mit zu kleinen
µCs zu quälen.

>Benutze ich dann die TimerInterrupts um einen anderen freien IO-Pin zu
>schalten oder gibt es da andere Vorgehensweisen?

könnte gehen, hat aber diverse Nachteile.

>In wie weit ist eine Lösung mit Interrupts dann langsamer als eine reine
>Hardwarelösung, hat da wer Erfahrungen?

Kommt auf die konkreten Werte an. Nachteile im Einzelnen:
- Jitter (Die PWM ist nicht immer exakt gleich breit)
- Aussetzer durch nicht ausgeführte IRQs
- Höherer Stromverbrauch
- Überlast des µC da zu viele IRQs

von c-hater (Gast)


Lesenswert?

Alex Z. schrieb:

> Was mache ich wenn ich ich z.b. alle 2 Timer mit je 2 kanälen benutzten
> will? OC0B und OC1A liegen auf dem gleichen Pin.

Ganz einfach: man wählt nicht den Tiny 25/45/85...

Wobei man wohl zugegeben muß, daß Atmel hier nicht gerade ein 
glückliches Händchen beim Mapping hatte. Naja, bei 441/841 haben sie ja 
gezeigt, wie sie das zukünftig bei den LPC-Teilen handhaben wollen.

Mal sehen, ob es nach der Übernahme dazu überhaupt noch kommen wird...

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.