PIO Pullup ausschalten

Gast #1369336
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
Gast #1369367
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.
Gast #1369370
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!!!
Gast #1369461
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:
1
#define NUT_PIO_STATUS  (0xFFFF0068) //Basisaddresse (PIO_BASE) + PIO_PUSR
2
#define NUT_PIO_DISABLE  (0xFFFF0060) //Basisaddresse (PIO_BASE) + PIO_PUDR
3
#define E_FA_GELB 23 //Der Eingang den ich Disablen möchte
4

5
int main (void)
6
{
7
unsigned int pio;
8

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

aber das funktioniert auch nicht. Denke aber das ich der Sache schon 
näher komme.
Gast #1372316
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.