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>
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?!
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.
> /*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
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.
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.
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
Dein Screenshot vom Threadbeginn hat nichts mit dieser Software zu tun.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.