Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > Hallo Endress, > > > > > > also ganz grundsätzlich kannst Du auch den internen PullUp aktivieren. > > > Bei manchen Anwendungen ist das jedoch nicht so gut, z.B. bei einem Inkrementalgeber. > > > Da solltest Du einen externen PullUp verwenden und den internen abschalten. > > > > > > So jetzt aber zu deinem Fehler. > > > Die Anweisung "Port_DataDir" setzt den GESAMT Port auf Ein- oder Ausgang. > > > Hier kann Du nicht den PortPin angeben! (Das machst Du). > > > > > > Die richtige Anweisung (in deinem Fall) wäre "Port_DataDirBit". > > > Hier wird nur EIN PortPin angesprochen. > > > > > > Ein Beispiel mit internen PullUp, bei dem EIN Portpin auf Eingang gesetzt wird. > > > Code nicht geprüft, da ich normalerweise in Basic programmiere. > > > > > > void main(void) > > > { > > > > > > Port_DataDirBit(16,0); // PortPin 16 (C.0) auf Eingang > > > Port_WriteBit(16,1); // PullUp C.0 an > > > > > > int test; // Variable zum cachen der Werte > > > > > > while(true) > > > { > > > test = Port_ReadBit(PortC0); // Port einlesen > > > > > > Msg_WriteInt(test); // Wert im Debugger im IDE Fenster ausgeben > > > Msg_WriteChar(13); // Zeilenumbruch > > > } > > > > > > } > > > > > > > > > Gruß > > > > > > Monte > > > > > > > > Hallo, > > > > > > > > > > ich versuche Port C 0 mittels eines Relais auszuwerten. > > > > > Nun habe ich schon etwas über die Pullup/Down Widerstände gelesen, aber das bringt mich nicht wirklich > > > > > weiter. Nur wenn ich den Port über einen 10K Widerstand auf GND ziehe, steht das Ding auf Null, floatet > > > > > aber sonst immer vor sich hin, auch wenn ich 5 Volt anlege. > > > > > > > > > > Was mach ich falsch ? > > > > > > > > > > Source: > > > > > > > > > > > > > > > #define PortC0 16 > > > > > #define PortA0 0 > > > > > > > > > > char zeile1[8]; > > > > > > > > > > void main(void) > > > > > { > > > > > LCD_Init(); > > > > > LCD_ClearLCD(); > > > > > > > > > > Port_DataDir(PortC0,0); > > > > > ADC_Set(ADC_VREF_VCC,0); > > > > > > > > > > Port_WriteBit(16,1); > > > > > > > > > > while(true) > > > > > { > > > > > if(Port_ReadBit(PortC0)==1) > > > > > { > > > > > zeile1="1"; > > > > > } > > > > > if(Port_ReadBit(PortC0)==0) > > > > > { > > > > > zeile1="0"; > > > > > } > > > > > LCD_Ausgabe(); > > > > > } > > > > > } > > > > > > > > > > void LCD_Ausgabe(void) > > > > > { > > > > > LCD_CursorPos(0x00); > > > > > LCD_WriteText(zeile1); > > > > > } > > > > > > > > > > > > > > > Danke und Gruss, Endress > > > > > > > > Zusatzfrage: Ich hole die 5 V über VREF vom Port A0 ist das am Ende ein Problem ? > > > > Oder gibt es grundsätzlich einen Pin der die 5 Volt liefert auf dem Board ? > > > > Hallo Monte, > > > > vielen Dank für die Antwort, ich hab zu Testzwecken den gesamten PortC auf Input gesetzt. > > > > Ich habe es vorhin nochmal getestet und es funktioniert jetzt folgendermassen : > > > > Bei aktiviertem internen Pullup ist der Port High im Ruhezustand. > > Zieh ich ihn auf GND geht er auf LOW. ( ich kann ihn doch direkt auf GND ziehen ? ) > > Ist das so korrekt ? > > > > Externer Pullup sähe so aus : > > > > 10 K Widerstand vom Port direkt auf GND. > > 5 V beim Schaltvorgang auch direkt auf den Port ? > > > > Gibt es auf dem Applicationboard PINs für GND ? Ich find in der gesamten Portbelegung irgendwie nichts. > > > > Danke und Gruss, Endress > Hallo Endress, > > wenn du das App.Board so vor dich legst, das die USB-Buchse links ist, > dann ist die oberste Reihe auf dem Lötfeld +5V und die unterste Reihe GND. > > Gruß > GEMINI1606