www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Port-Bits zusammenfassen und dezimal ansprechen


Autor: Thommi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gemeinde :-)

Hab hier am Atmega 16 an PortC0-2 nen Analogschalter HCT4051 hängen und 
möchte diesen umschalten.Die Schalternummer geb ich dem 4051 binär vor. 
Ist es möglich die 3 Ausgänge (portc.0, portc.1, portc.2) mit Alias o.ä. 
umzubenenen und diese 3 Ausgänge sozusagen auf einmal anzusprechen. 
Vielleicht noch dezimal ? Also z.B

...
Schalterstellung alias portc.0, portc.1, portc.2
Schalterstellung = 2
...

Ist schwer zu erklären, ich hoffe ihr wisst was ich meine.
Ich programmiere in Bascom.

Danke !
Thommi

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in C geht das so:

temp = PINC;
temp &= 0xF8;
temp |= Schalterstellung;
PORTC = temp;

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
portc = 2

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uint8_t schalterstellung = 6;
PORTC = (PORTC & 0xF8) | schalterstellung;
PORTC ist danach XXXX X110. Die zweite Zeile kann man natürlich noch als 
Makro definieren, um sich Schreibarbeit zu sparen.
#define SET_MUX(x) PORTC = (PORTC & 0xF8) | (x)
//...
schalterstellung = 5;
SET_MUX(schalterstellung);
PORTC ist dann XXXX X101.

Und schau Dir mal den Artikel zum Thema Bitmanipulation an...

Autor: Thommi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mann das ging ja fix ! Danke erstmal an alle !

@Johannes:

So brauch ich das, die anderen Pins bleiben unberührt. Aber das ist doch 
nicht Bascom, oder?

Grüße
Thommi

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich programmiere in Bascom.

Das haben die meisten überlesen, oder?

Autor: Thommi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War das ironisch gemeint ??

Deine Lösung funzt nicht da dann der ganze Portc gesetzt wird. Alle 
anderen pins also auf 0. Da höngen aber schon andere Sachen dran die 
nicht verändert werden dürfen.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Johannes

Hast recht PORTC zuerst lesen, nicht PINC.
Sonst haut es einem evtl. aktivierte Pullups weg ;)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Thommi (Gast)

>So brauch ich das, die anderen Pins bleiben unberührt. Aber das ist doch
>nicht Bascom, oder?

Ich hab die BASCOM Syntax jettz nich parat, aber in etwa
so

byte tmp
byte kanal

tmp = PORTC
tmp = tmp and ~7
tmp = tmp or kanal
PORTC = tmp

MfG
Falk

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Komisch, Falk, sowas hätte ich auch gerade vorschlagen wollen.
Ich habe gerade festgestellt, dass es im Bascom-Handbuch auch eine 
"Newbie problems"-Abteilung gibt - und es wird nicht mal auf dieses 
Forum verwiesen.

Autor: Thommi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal an alle !

Werd morgen weiterprobieren.

Grüße
Thommi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.