16 bit Addition PIC18

Gast #3243047
Lesenswert?
• ▲
▼
Ich bin gerade dabei meinen PIC18F46k22 in C zu programmieren und bin 
auf folgendes Problem gestoßen: Ich müsste zu einem Registerpaar (CCPR1H 
und CCP1L) aus zwei 8-bit Register eine 16-bit Integer addieren. In ASM 
hätte ich damit kein Problem:
CCPR1H = INThigh + CCPR1H
CCPR1L = INTlow + CCPR1L
wenn carry = 1 : Increment CCPR1H

Wie kann ich das in C machen? kann ich auch einfach das Carry Flag 
abfragen?
Gibt es eine elegantere Lösung?
#3243074
Lesenswert?
• ▲
▼
Ich kenne weder die PIC Architektur noch die dazugehörigen Werkzeuge, 
aber im Falle von AVRs könnte man auch mittels "CCPR1" zugreifen. Der 
Compiler wandelt das dann entsprechend in zwei Zugriffe um.

Laut [1] sollte das auch in deinem Fall klappen. Ansonsten wird dort 
auch noch die Möglichkeit mittels Bit-Shift vorgestellt.

Mit freundlichen Grüßen,
Karol Babioch

[1]: http://www.mikroe.com/forum/viewtopic.php?t=19166

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.