Forum: PC-Programmierung Bit als Ausgang definieren


von Peter B. (decibel)


Angehängte Dateien:

Lesenswert?

Hy Leute.

Ich bin neu in der "C-Welt".
Hab mir um C zu lernen ein Buch gekauft mit dem Titel 
"Softwareentwicklung in C für Mikroprozessoren und Mikrocontroller".

In diesem Buch ist beschrieben wie man Bits aus Ausgang definieren kann.

Und zwar:

Wenn Prozessor und Compiler Bitoperationen auf C-Ebene unterstützen:

/*Schalten des entsprechenden DDR auf Ausgang*/
PortA_DDR0=1;
/*Schalten des entsprechenden DDR auf Eingang*/
PortA_DDR1=0;

ODER

Wenn Prozessor und Compiler keine Bitoperationen auf C-Ebene 
unterstützen:

/*Schalten des entsprechenden DDR auf Ausgang*/
PortA_DDR=0x01;
/*Schalten des entsprechenden DDR auf Eingang*/
PortA_DDR=1x00;

Wenn ich das richtig verstehe, will er in diesem Beispiel PortA.0 auf 
Ausgang setzen und PortA.1 auf Eingang.


Wenn ich das so eingebe, kommen bei mir Fehlermeldungen.
<siehe Bild>

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, das ist kein Wunder, da der von Dir verwendete Compiler ein 
Compiler für das Erstellen von Windows-Programmen ist.

Der weiß natürlich überhaupt nichts mit Dingen wie PortA_DDR oder so 
anzufangen.

> Wenn Prozessor und Compiler keine Bitoperationen auf C-Ebene
> unterstützen:
>
> /*Schalten des entsprechenden DDR auf Ausgang*/
> PortA_DDR=0x01;
> /*Schalten des entsprechenden DDR auf Eingang*/
> PortA_DDR=1x00;
            ^
DAS soll in dem "C-Buch" drinstehen?!

von Karl H. (kbuchegg)


Lesenswert?

Peter Brandstetter schrieb:

> Ich bin neu in der "C-Welt".
> Hab mir um C zu lernen ein Buch gekauft mit dem Titel
> "Softwareentwicklung in C für Mikroprozessoren und Mikrocontroller".

Um C zu lernen war das das falsche Buch.

Wenn du C lernen willst, dann mach einen großen Bogen um alle Bücher in 
deren Titel irgendwas in der Form "für System XYZ" vor kommt. (Es sei 
denn natürlich, dieses XYZ ist dein konkretes System auf dem du 
entwickelst. Bei dir also Windows)

Grund: Du musst 2 Dinge auseinanderhalten
a) C in seiner allgemeinen Form, wie es jeder C-Compiler versteht
b) C in seiner speziellen Form, mit Erweiterungen, die auf das jeweilige
   System zugeschnitten sind

b) ist eine Erweiterung von a). Will man b) bearbeiten ist ein solider 
Grundstock in a) mehr als vorteilhaft.

Du musst a) lernen, hast dir aber ein Buch für b) gekauft.

von Peter B. (decibel)


Lesenswert?

> /*Schalten des entsprechenden DDR auf Ausgang*/
> PortA_DDR=0x01;
> /*Schalten des entsprechenden DDR auf Eingang*/
> PortA_DDR=1x00;
            ^
DAS soll in dem "C-Buch" drinstehen?!

ne da hab ich mich verschrieben
1x00 steht nicht drin ^^



ok danke

von Peter B. (decibel)


Lesenswert?

habt ihr einen buchtip für "a)" ?

lg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Klar, immer wieder empfohlen:

Brian Kernighan & Dennis Ritchie, "Programmieren in C", Hanser-Verlag, 
2. Auflage.

Beschreibt zwar "nur" C89, ist aber nach wie vor der Klassiker.

von Hc Z. (mizch)


Lesenswert?

Peter Brandstetter schrieb:
> Wenn Prozessor und Compiler Bitoperationen auf C-Ebene unterstützen:
> PortA_DDR0=1;

> Wenn Prozessor und Compiler keine Bitoperationen auf C-Ebene
> unterstützen:
> PortA_DDR=0x01;

Irgendwie kann auch das so nicht drinstehen, oder der Autor des Buches 
war etwas ... äm ... unkonzentriert.

von Peter B. (decibel)


Lesenswert?

rufus schönen dank wer ich mir sofort zulegen =)

von Peter B. (decibel)


Lesenswert?

der Befehl

/*Schalten des entsprechenden DDR auf Ausgang*/
PortA_DDR=0x01;


bzw.

/*Schalten des entsprechenden DDR auf Ausgang*/
PortA_DDR0=1;


funktioniert bei der mitgelieferten Software auch nicht.

Handelt sie dabei um das Application Board mit MEGA32 von Conrad.
Software heißt C-Control PRO

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dein Screenshot vom Threadbeginn hat nichts mit dieser Software zu tun.

von Peter B. (decibel)


Lesenswert?

nein

bei c-control muss man Port_DataDirBit(Bit,I/O) eingeben.

das is doch der gleiche befehl wie in basic prog.

kompletter schwachsinn oder?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ich vermag Dir nicht zu folgen.

von Peter B. (decibel)


Lesenswert?

schade

welches programm nutzt ihr zum uC programmieren?

von Matze (Gast)


Lesenswert?

Für AVR z.B. das AVR-Studio von Atmel + WinAVR

Alles kostenlos zum Download

MfG Matze

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.