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
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.
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!!!
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.
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).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.