Digitale Ausgänge

Gast #120891
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...
#120892
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
Gast #120893
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
Gast #120894
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;
}
Gast #120895
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
Gast #120897
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
Gast #120899
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren