16bit Variable auf 2 Ports aufsplitten

OP #363500
Lesenswert?
• ▲
▼
Momentan möchte ich eine Soft-PWM erzeugen.
Mit 8bit funktioniert das wunderbar. Innerhalb des Timer overflow ISR
habe ich eine schleife, um zu testen ob die einzelnen Bits eines Ports
gesetzt werden oder nicht. Anschließend wird dann ja auch die Variable
an den Port übergeben. Wenn ich allerdings das ganze auf 16 Kanäle
erweitern möchte könnte ich ja 2 schleifen a 8bit verwenden. Allerdings
erscheit das mir nicht sehr vorteilhaft.
Gibt es möglichkeiten das ganze in einer 16bit variablen auszuwerten
und  dann dies irgendwie auf 2 oder mehr ports aufzusplitten?
Ist sicher auch für die Prozessorauslastung besser.

Andere Alternativen sind natürlich auch gerne willkommen :)

Gruß Julien
Gast #363501
Lesenswert?
• ▲
▼
Quelltext?

Wenn ich dich richtig verstehe, hast eine Variable mit 16Bit-Breite und
willst die auf 2 Ports verteilen.

->würde ich auf die Schnelle so machen
int pwm-output;
PORTA = pwm-output;           //ersten 8 Bits
PORTB = pwm-output >> 8)      //oberen 8 Bit nach rechts verschoben

Anonsten bitte nochmal das Problem näher beschreiben.

Grüße
Gast #363505
Lesenswert?
• ▲
▼
Benötige PWM-Frequenz: ca. 100Hz
Verwende einen AVR mit 16MHz

Ist es da vorteilhaft des über eine 32bit variable zu lösen und dann
wie schon gesagt, die Bits immer weiter zu schieben?

Oder gibts da noch ne bessere, evtl. auch schnellere Lösung?

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.