Forum: Mikrocontroller und Digitale Elektronik Digitale Ausgänge


von Steff Mopf (Gast)


Lesenswert?

Hi,
hätte mal ne frage:

Wie kann ich einen digitalen Ausgang auf 0 (LOW) setzten.

Ich hab mir das ziemlich einfach vorgestellt aber es funktioniert nicht
wie ich mir das gedacht hab.

Wie würdet "ihr" das machen??

Danke für die Hilfe.

LG Steff

von ...HanneS... (Gast)


Lesenswert?

Datenrichtung auf Ausgang, Port auf 0...

von Steff Mopf (Gast)


Lesenswert?

Wie kann ich die Datenrichtung auf Ausgang stellen!?!?!

Bin noch ein Anfänger auf dem Gebiet!!!!!!!!!

von Hubert.G (Gast)


Lesenswert?

Ich würde mit das mal durchlesen und die folgenden Seiten ausprobieren.
www.mikrocontroller.net/tutorial/

Hubert

von Hubert.G (Gast)


Lesenswert?

Oder wenn du mehr für C bist.

www.mikrocontroller.net/articles/c/Einleitung.htm

von ...HanneS... (Gast)


Lesenswert?

Da wir nicht wissen welchen Controller, I/O-Chip, oder weiß der Geier
was meinst, ist das Beantworten deiner Frage recht schwierig. Selbst
wenn du uns das verraten würdest, bliebe noch die Frage der
Programmiersprache offen.

Daher meine sehr allgemein gehaltene Antwort weiter oben...

Also:
- Im Datenblatt nachschaun, wie der Port funktioniert (es gibt da
  Unterschiede),
- im Datenrichtungsregister das entsprechrende Bit (falls vorhanden)
  auf Betriebsart "Ausgang" setzen,
- im Ausgangsregister (Portregister) das gewünschte Bit auf 0
  setzen...

Wie das geht, hängt vom jeweiligen Chip, seinem Befehlsvorrat und der
verwendeten Programmiersprache ab, denn da gibt es gewaltige
Unterschiede...

Also: "Es gibt viel zu tun! - Schauen wir weg..."

...HanneS...

von Peter D. (peda)


Lesenswert?

Um einen Pin auf 0 zu setzen, mußt Du das entsprechende Bit im
IOCLRx-Register auf 1 setzen.

Nachfolgend ein Beispiel:

#include <lpc21xx.h>

#define LED   7         // P0.7
#define BUTTON  31      // P0.31

int main( void )
{
  IODIR0 = 1<<LED;      // LED as output
  for(;;){
    if( !(IOPIN0 & (1<<BUTTON ))){
          IOSET0 = 1<<LED;
        }else{
          IOCLR0 = 1<<LED;
        }
  }
}


Peter

von Steff Mopf (Gast)


Lesenswert?

hi,

Programmsprache: C
µController: Siemens B 58 657

ich hab mir das so vorgestellt(Bitte nicht lachen)

sbit Bit0 = P6^0;

main()
{
Bit0 = 0;
}

Der Compiler(Keil, µVision V1) sagt mir:

'Bit0=': undefined identifier

Mit sbit definier ich den Pin 0 an Port6 als variable Bit0

Würde das so funktioniern??
Warum sagt mir der Compiler das Bit0 nich definiert ist??

Steff

von Sascha (Gast)


Lesenswert?

hi,

Hä???

"sbit Bit0 = P6^0;" <--- P6^0 ist das Bit0 vom Port 6

versuchs mal so P6^0=0;

Da ich bis jetzt nur den SDCC genommen habe, weiß ich es nicht so
genau. Aber dort geht es so:

#define Entladen_Stop  P6_0


main()
{
Entladen_Stop = 0;
}

von Steff Mopf (Gast)


Lesenswert?

Hi,
bin glaub ich auf den fehler drauf gekommen.

hab die falsche reg.h Datei.
In der reg.h Datei sind ja die ganzen hex-adressen für die Ports
festgelegt, oder?

In der Schule arbeiten wir mit einen 8051 Microcontroller und ich hab
einfach die gleiche reg517.h Datei genommen.

Mein µController ist der Siemens B 58 657.

Zu welcher familie gehört mein µC.
Hab schon im Internet gesucht aber nichts passendes gefunden???

Oder ist die reg.h Datei für alle µC gleich???


LG

von Sascha (Gast)


Lesenswert?

Hi,

von dem hab ich auch nie etwas gehört. Bist du sicher, das da nicht
etwas anderes draufsteht??


Mfg Sascha

von Steff Mopf (Gast)


Lesenswert?

Den Microcontroller hab ich mir in der schule ausgeborgt.

Also die Platine sieht folgendermaßen aus

1.Längliches Bauteil auf dem steh:
SB 9106
NMC27C256Q
250
...das ist entweder der ROM oder RAM

2.Längliches Bauteil auf dem steh:
KM68100Al6-7
410C
...das ist entweder der  ROM oder RAM

1. quadratisches Bauteil auf dem steht:
Siemens
B 58 657
LA+copyright INTEL 80
9550
...das ist der Microprozessor, oder??
hab angenommen das  Microprozessor und Microcontroller von der
Bezeichnung her gleich sind?!?!

dann ist noch ein zweites, kleineres quadratisches Bauteil
auf dem steh:
XILINX
XC9538
PC44AMM0813
F1258761A
weiß nicht was das für ein Bauteil sein soll

von Eddi (Gast)


Lesenswert?

Könnte daran liegen, daß der B 58 657 keinen Port6 hat. Wenn der nur 44
Pins hat, dann gibt es nur Port0 bis Port 3.

Nur so eine Idee, da ich keine Infos über den Chip finde.

von Steff Mopf (Gast)


Lesenswert?

nein ich hab von einem Lehrer eine Schaltplan bekommen und da gibts
einen Port 6.

Ich werd morgen nochmal mit dem Lehrerh redn, vielleicht weiß er
näheres.

DANKE übrigens!!!!!!!!!

LG Steff

von Sascha (Gast)


Lesenswert?

Hi,

Da müßte eigentlich noch mehr stehen...............

"1. quadratisches Bauteil auf dem steht:
 Siemens
 B 58 657
 LA+copyright INTEL 80
 9550                                    "

Was steht denn auf der Platine?

Mfg Sascha

von Steff Mopf (Gast)


Lesenswert?

Hab mit einen Lehrer geredet und der hat mir gesagt dass das der

80 9550

Gibts den??

Welche reg.h datei brauch ich für den????

LG

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.