Gast
#341758
Hallo ich möchte ein AT91SAM7X EK Board mit einem AT91SAM7X256 in Betieb nehmen. Habe bisher nur mit 8 Bit Controllern gearbeitet (STK 500). Will erstmal nur die LED's ansteuern und etwas über die USART rausschicken usw. Später muss ich dann über USB die SD-Speicherkarte beschreiben... Jetzt scheitert es schon bei der Ansteuerung der parallelen I/O Ports. Mein Problem: Ich kannte es bisher, dass man ein Datenrichtungsregister schreiben musste und dann konnte man die Ausgänge setzen. PDDRA=0xFF; PORTA=0xAB; Jetzt sind da gleich 18 Register die beschrieben werden wollen. Und mit den Erklärungen aus dem Datenblatt komme ich auch nicht so recht weiter. Habe mir jetzt erstmal eine Header und ein .c geschrieben um auf die Register zuzugreifen. #define START 0xFFFFF600 volatile int* MY_PIOB_PER = (volatile int*)(START+0x0000); volatile int* MY_PIOB_OER = (volatile int*)(START+0x0010); volatile int* MY_PIOB_SODR = (volatile int*)(START+0x0030); volatile int* MY_PIOB_ODSR = (volatile int*)(START+0x0038); volatile int* MY_PIOB_OWER = (volatile int*)(START+0x00A0); Dann habe ich folgende Register wie folgt gesetzt: // LED's PB19-PB22 *MY_PIOB_PER = 0xFFFFFFFF; // Alle enabled *MY_PIOB_OER = 0xFFFFFFFF; // Ausgang ??? *MY_PIOB_OWER = 0xFFFFFFFF; // Das ich die beschreiben kann ??? *MY_PIOB_SODR = 0x00300000; // Wert den ich ueber den Parallelport ausgeben moechte Im Debugger (C-Spy [IAR]) sehe ich, dass die Register "richtig" gesetzt werden. Aber wenn ich das Programm auf den Controller schreibe (SAM-BA 1.8) fangen die LED's leider nicht an zu leuchten. Es wäre super wenn mir jemand sagen könnte, welche Register ich wie zu beschreiben habe. Gruß Tobias