mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIO Pullup ausschalten


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten tag,

ich habe folgendes Problem. Ich will den PIO_Pullup abschalten da sie 
beim AT91Sam7x256 direkt nach dem Reset auf High stehen. Ich habe schon 
viele definitionen gesehen aber die meisten ergeben für mich einfach 
keinen Sinn.

Ich will am Anfang das PIO_PUSR <--"Falls es so heist" setzen also das 
Statusregister und dann mit PIO_PUDR <--"Falls es so heist" den Resistor 
Disablen.

Wo ich das mache ist mir wohl klar ich weiß halt einfach nur nicht wie 
man den Befehl schreibt und ob dieses PIO_P*** für meinen 
Mikrocontroller korrekt ist. Ich hab auch schon Befehle gesehen die so 
aussahen

PIO_PSR, PIO_PUSR, PIO_PPUSR = Pull-up Enable Register
PIO_PDR, PIO_PUDR, PIO_PPUDR = Pull-up Disable Register

Bitte helft mir ich dreh hier sonst noch am rad ^^

Gruß Philipp

Autor: kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stehts im Datenblatt, wie es geht?

>Ich habe schon viele definitionen gesehen aber die meisten ergeben für mich 
>einfach keinen Sinn.

Warum willst Du dann hier eine neue MEINUNG einholen? Glaubst Du der 
Meinung dann ? Schau in die Unterlagen zum uP.

und gut.

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im Datenblatt steht nur ein kurzer Text das man die PIO enablen und 
disablen kann aber nicht wie der Befehl dazu aussehen muss. Die 
schreiben das zwar so:

PIO_PSR = PIO Status Register
PIO_PER = PIO Enable Register
PIO_PDR = PIO Disable Register

aber kein Befehl beispiel!!!

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok also um den PULL-UP aus, ein und auslesen zukönnen brauche ich diese 
Definition:
PIO_PUSR = Pull-up Status Register
PIO_PUER = Pull-up Enable Register
PIO_PUDR = Pull-up Disable Register

nun weiß ich trotzdem noch nicht wie ich den Befehl schreibe.
hab schon folgendes ausprobiert:
#define NUT_PIO_STATUS  (0xFFFF0068) //Basisaddresse (PIO_BASE) + PIO_PUSR
#define NUT_PIO_DISABLE  (0xFFFF0060) //Basisaddresse (PIO_BASE) + PIO_PUDR
#define E_FA_GELB 23 //Der Eingang den ich Disablen möchte

int main (void)
{
unsigned int pio;

pio = inr (NUT_PIO_DISABLE);  //Schreibe den Inhalt des Registers in pio
pio = pio | (1<<E_FA_GELB);  //Setze Bit für den entsprechenden Eingang
outr(NUT_PIO_DISABLE, pio); //Schreibe den Inhalt wieder ins Register
}

aber das funktioniert auch nicht. Denke aber das ich der Sache schon 
näher komme.

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß wirklich niemand wie man diese doofen Pull-ups ausschaltet?

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok alles klar habs jetzt selbst hinbekommen. Für alle anderen:

Es ist wichtig dem MC zu sagen um welchen Port es sich handelt. Sprich 
Basisaddresse von Port A ist nicht 0xFFFF0000(PIO_BASE) sondern 
0xFFFFF400 (PIOA_BASE).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.