8Bits und 2Bits in eine Integer-Variable

Gast #2662865
Lesenswert?
• ▲
▼
Hallo Leute,

wenn ich von einem Register ein spezielles Bit ansprechen möchte, kann 
ich ja xxxxbits.xxxx verwenden. Wird dann aber nur das entsprechende Bit 
aufgerufen und die anderen Bits des Register als unknown betrachtet oder 
werden wirklich auch nur die speziellen Bits aufgerufen? Denn ich möchte 
bei meiner PWM die 10bit-Auflösung benutzen, doch die besteht aus zwei 
Teilen zum Einen aus dem CCP1L Register (8bit) und die zwei speziellen 
Bits (DC1B-Bits) aus dem CCP1CON Register (2Bits). Ich möchte diese 
10Bits, die aus 8 und 2 Bits bestehen in eine Variable aus 16 Bits 
(integer) schreiben, doch ich habe null Ahnung, wie ich das machen kann. 
Ich wäre für eure Hilfe sehr dankbar, da ich langsam am Verzweifeln bin 
:-)

Mit freundlichen Grüßen

Paarthurnax
Angehängte Dateien:
#2662881
Lesenswert?
• ▲
▼
Einfach zuweisen - die Bits 10 bis 15 werden automatisch auf einen 
konstanten Wert gesetzt, welcher das ist, hängt von der Harware ab.

Da sie keine Information tragen, kannst du sie anschließend durch 
bitweises & mit 0x3ff auf 0 setzen, falls sie nicht 0 sind.
(Firma: Promaxx.net) #2663324
Lesenswert?
• ▲
▼
???

Du errechnest den 10-Bit-PWM-Wert in eine 16-Bit-Variable.

Dann nimmst Du Bit0 aus der Variable und speicherst es in das 
entsprechende Bit in CCP1CON.
Mit Bit1 verfährst Du genauso.

Also etwa:
CCP1CON.x=Variable.0
CCP1CON.y=Variable.1

Und dann nimmst Du Bit2 bis Bit9 und schreibst es in CCP1L

CCP1L=Variable>>2

Ich denke mal, man schaltet vorher das Update der Timer-Register ab und 
nachher wieder an, hab den Typen jetzt nicht genau im Kopf.

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.