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 ?