Bit 2 bis 5 als EINE Variable ansprechen

Gast #28366
Lesenswert?
• ▲
▼
Hallo Oliver

Ich möchte nicht auslesen, sondern ausgeben. Und wenn ich die 4Bit auf 
den ganzen Port mit 8Bit schreiben würde, wären die Bits 0-3  gesetzt 
anstatt Bit 2-5.

Ich suche irgendwas in der Form von:

#define BCD_Output [PORTC.2;PORTC.3;PORTC.4;PORTC.5]

Vielleicht könnte ich selbst einen Datentyp definieren (#typedef) aber 
ich weiss nicht, was ich schreiben soll...
Gast #28367
Lesenswert?
• ▲
▼
Ich weiss nicht, wie Du Deine Ports in C ansprichst, aber so müßte es 
gehen:

PortC = PortC | (Deine_Variable&0xF)<<2

Deine_Variable enthält den Wert(low nibble). High Nibble wird 
ausgeblendet und alles an die Bitstelle 2 bis 5 verschoben.
Gast #28370
Lesenswert?
• ▲
▼
Hi Marcel,

um das Maskieren wirst du wohl nicht herumkommen; schreib dir doch 
einfach ein Makro. Weiß gerade nicht, ob CV mit dieser Terminologie 
arbeitet, aber so ungefähr wird es gehen:

#define LCD_PORT(X) PORTC = ((PINC&0xC3)|X)

Beim GCC:
#define LCD_PORT(X) outp((inp(PINC)&0xC3)|X,PORTC)

Gruß
Olaf
Gast #28371
Lesenswert?
• ▲
▼
hi,
probier doch mal ein bisschen inline assebler und bastel dir was mit SBI 
und CBI (set bit in I/o register und das gleiche mit clear)

beispielfetzen:

asm volatile("cbi portc, 0") // setzt pb0 <- 0
asm volatile("sbi portc, 1") // setzt pb1 <- 1

natürlich noch ne nette funktion und ne schleife und ein par ifs und 
viele klammern drumbasteln (asm ist eben doch unkomplizierter ;D)
ich hab wirklich keine ahnung, obs so geht, aber meiner meinung nach 
wärs ein möglicher ansatz :D

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.