Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Pullup / Pulldown Kategorie: Programmierung C (von GEMINI1606 - 10.06.2009 13:35)
Als Antwort auf Re: Pullup / Pulldown von Endress - 10.06.2009 13:27
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
> > 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


    Antwort schreiben


Antworten:

Re: Pullup / Pulldown (von Endress - 10.06.2009 15:05)
    Re: Pullup / Pulldown (von Montelucon - 11.06.2009 2:25)
        Re: Pullup / Pulldown (von Endress - 15.06.2009 10:12)
            Re: Pullup / Pulldown (von Montelucon - 15.06.2009 23:44)