mikrocontroller.net

Forum: PC-Programmierung Bit als Ausgang definieren


Autor: Peter Brandstetter (decibel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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>

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Brandstetter (decibel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Brandstetter (decibel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habt ihr einen buchtip für "a)" ?

lg

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Brandstetter (decibel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
rufus schönen dank wer ich mir sofort zulegen =)

Autor: Peter Brandstetter (decibel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Screenshot vom Threadbeginn hat nichts mit dieser Software zu tun.

Autor: Peter Brandstetter (decibel)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermag Dir nicht zu folgen.

Autor: Peter Brandstetter (decibel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schade

welches programm nutzt ihr zum uC programmieren?

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für AVR z.B. das AVR-Studio von Atmel + WinAVR

Alles kostenlos zum Download

MfG Matze

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.