Forum: Mikrocontroller und Digitale Elektronik 1 Bit Variable C167


von Martin B (Gast)


Lesenswert?

Hallo,
ich wollte wissen, wie man bei einem mit der Tasking EDE zu 
programmierenden C167 einer Variable die Speichergröße von einem bit 
zuweiesen kann, da diese nur 1 oder 0 als Wert bekommt. (c-Code)
Danke

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

42 ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Bitfelder gehen nur innerhalb eines zu definierenden Structs:
http://www.cs.cf.ac.uk/Dave/C/node13.html#SECTION001320000000000000000

Warum nimmst du nicht einfach einen ganzen Integer?
solange genug Speicher da ist, ist das auf jeden Fall die schnellste 
Lösung.

von Martin B (Gast)


Lesenswert?

Jo das wäre eine variante, ha ich auch so eingerichtet, aber e geht 
darum, möglichst wenig speicher zu belegen

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> möglichst wenig speicher zu belegen
Auch wenn du das Bitfeld definierst, und dann nur 1 Bit belegst, wird 
der compiler einen Integer verbrauchen...

von Martin B (Gast)


Lesenswert?

achso...stimmt eigentlich...naja mal schauen...

andere frage: wie kann ich den myC Resetten am anfang der main funktion? 
oder wird das automatisch gemacht?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> wie kann ich den myC Resetten am anfang der main funktion?
Du solltest diese Funktion aufrufen:
1
   lirpa(first);

> oder wird das automatisch gemacht?
Oder war die Frage wirklich ernst gemeint?

von Martin B (Gast)


Lesenswert?

nene war nicht ernst gemeint^^

danke schon mal

von Martin B (Gast)


Lesenswert?

---> kerzscheks

von ??? (Gast)


Lesenswert?

Lothar Miller schrieb:
> Bitfelder gehen nur innerhalb eines zu definierenden Structs

Ok, stimmt so, aber gefragt wurde nach (einzelner) Bitvariable. Der c167 
hat einen Bit-adressierbaren Bereich. Bei Keil gibt es den Datentype Bit 
und die Speicherklasse BDATA.
... und bei Tasking? (ist die Ausgangsfrage)


???

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

??? schrieb:
> Lothar Miller schrieb:
>> Bitfelder gehen nur innerhalb eines zu definierenden Structs
>
> Ok, stimmt so, aber gefragt wurde nach (einzelner) Bitvariable. Der c167
> hat einen Bit-adressierbaren Bereich. Bei Keil gibt es den Datentype Bit
> und die Speicherklasse BDATA.
> ... und bei Tasking? (ist die Ausgangsfrage)

Die Antwort ist schnell gegeben: In C geht es überhaupt nicht.

Zumindest gibt es in keinen C-Standard einen Datentyp "Bit" o.ä., auch 
nicht in der IEC TR 18037.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

In C nicht, ja. Aber Keil unterstützt es trotzdem. Da 
Mikrocontroller-Programme seltenst portiert werden, ist ein Standard eh 
wurscht.

von ??? (Gast)


Lesenswert?

Und was ist jetzt mit Tasking? Hat der auch 'ne Bit-Variable?

Bitte mal einer beantworten, ich schlafe schon seit Wochen schlecht 
:=)))

???

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

??? schrieb:
> Und was ist jetzt mit Tasking? Hat der auch 'ne Bit-Variable?
>
> Bitte mal einer beantworten, ich schlafe schon seit Wochen schlecht
> :=)))
>
> ???

Wie wärs mit Googeln? Ich glaube, du hast deinen Nick zurecht!

http://webcache.googleusercontent.com/search?q=cache:fD8QzyekWeoJ:www.tasking.com/support/c166/readme_v2.1r2.html+tasking+bitvariable&cd=5&hl=de&ct=clnk&gl=de&ie=UTF-8

von ??? (Gast)


Lesenswert?

@Abdul K.
Du weist, was das :=))) soll?

Mir ist völlig egal, ob der Tasking es kann oder nicht. Nur ist die 
Ausgangsfrage nicht beantwortet. Alle Kommentare gehen am Ziel vorbei, 
auch Deiner.

???

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

??? schrieb:
> @Abdul K.
> Du weist, was das :=))) soll?

Noch nie gesehen. Erklärs mir.


>
> Mir ist völlig egal, ob der Tasking es kann oder nicht. Nur ist die
> Ausgangsfrage nicht beantwortet. Alle Kommentare gehen am Ziel vorbei,
> auch Deiner.
>
> ???

Wow. Nun mußte ich gerade eine weitere Minute in Google investieren:
http://www.google.de/search?hl=de&ie=ISO-8859-1&q=tasking+declare+bit-variable+_atbit%28%29+&meta=

Vor allem hier:
http://www.tasking.nl/support/c166-classic/c166_v8.7.pdf

http://www.keil.com/forum/docs/thread554.asp

Ja, man muß Arbeit reinstecken, sowas aber auch.

von ??? (Gast)


Lesenswert?

@Abdul K.
Martin B. dankt Dir bestimmt.

> Wow. Nun mußte ich gerade eine weitere Minute in Google investieren:
> http://www.google.de/search?hl=de&ie=ISO-8859-1&q=...

Aber ich finde es lustig, dass Du mit dem Wissen über das entscheidende 
Wörtchen
1
_atbit()
 noch Tante Google bemühst!?        ;-)))

???

von Ich (Gast)


Lesenswert?

> nene war nicht ernst gemeint^^
you are me maybe a joke cookie

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

??? schrieb:
> @Abdul K.
> Martin B. dankt Dir bestimmt.
>
>> Wow. Nun mußte ich gerade eine weitere Minute in Google investieren:
>> http://www.google.de/search?hl=de&ie=ISO-8859-1&q=...
>
> Aber ich finde es lustig, dass Du mit dem Wissen über das entscheidende
> Wörtchen
1
_atbit()
 noch Tante Google bemühst!?        ;-)))
>
> ???

Warum nicht, ich kenne Tasking nicht. Ich begreife meinen Job als 
Infobeschaffer. Den Rest überlasse ich dann Typen wie dir.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.