xmega pin als Eingang

OP #2975306
Lesenswert?
• ▲
▼
Guten Morgen,

folgdendes Problem mit xmega128a1: Bei Systemstart soll ein Pin 
eingelesen werden um je nach Pegel ein Display anders initialieseren.
1
int main(void)
2
{
3
 PORTB_DIRCLR = PIN1_bm;    // Pin als Input
4
 PORTB.PIN1CTRL = PORT_OPC_PULLUP_gc;  // interner PullUp PortB Pin1
5
 
6

7
 if (PORTB.IN & (1<<1)) LED0_ON(); else LED0_OF();
8

9
 ...
10
}

Das merkwürdige daran ist das manchmal beim starten der Pin falsch 
eingelesen wird.
Dh. der interne Pullup wird irgendwie nicht richtig gesetzt oder so.

Oder mache ich was falsch?

Danke, Markus
Gast #2976471
Lesenswert?
• ▲
▼
Moin,

wenn der Jumper gesteckt ist, dann ist der Port-Pin niederohmig an Masse 
angelegt - da sollte nichts passieren.
Ist der Jumper offen, dann passiert folgendes: Der Prozessor startet, 
der Port-Pin floatet (hat undefiniertes Potential), auf "Eingang" 
schalten ist in diesem Fall eigentlich nicht notwendig (ist Default), 
dann wird der Pull-Up eingeschaltet. Da der relativ hochohmig ist, kann 
es eine Zeit lang dauern, bis der Port-Pin wirklich auf VCC "aufgeladen" 
ist. Deshalb funktionierts auch mit einem Delay.... Die Kapazitäten sind 
parasitärer Natur - d.h. Leiterplatte, Gehäuse-Pins etc.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.