Download Gertboard-Handbuch deutsch
Transcript
Bild 13: Verbindungsschema für das LED-Testprogramm Test der LEDs in C Der Code in leds.c ruft zuerst setup_io, um alles zu initialisieren. Dann wird setup_gpio aufgerufen, das die 12 GPIO-Pins vorbereitet, um als Ausgänge zu arbeiten (alle 12 I/O-Ports erfordern Steuerung). Alle GPIO-Signale außer GPIO 0, 1, 4, 14 und 15 werden benutzt. Um sie als Ausgänge zu konfigurieren, muss zur Initialisierung zuerst INP_GPIO(n) aufgerufen werden (wobei n die GPIOPinnummer ist), und zwar für jedes der 12 Pins. Da dieser Befehl die Ports außerdem als Eingang öffnet, muss anschließend OUT_GPIO(n)für jedes der 12 Pins aufgerufen werden, um sie als Ausgang zu betreiben. Die LEDs werden durch das Makro GPIO_SET0 umgeschaltet: Der Wert, der an GPIO_SET0 zugewiesen wird, setzt das GPIO-Pin n auf high (1), wenn das Bit n auf diesen Wert gesetzt wird. Wenn ein GPIO-Pin auf high (1) gesetzt wird, wird der damit verbundene I/O-Port ebenfalls auf high (1) gesetzt und die LED an diesem Port geht an. Somit setzt die folgende Programmzeile GPIO_SET0 = 0x180; die GPIO-Pins 7 und 8 auf high (da die Bits 7 und 8 auf 1 gesetzt werden: hexadezimal 0X180 = 0001 1000 0000 in binärer Schreibweise). Entsprechend dem Verdrahtungsplan oben gehen die Ports 11 und 12 auf high (1) (das sind die mit GP7 und GP8 verbundenen Ports), und somit leuchten die zwei rechten LEDs. Um die LEDs auszuschalten, wird das Makro GPIO_CLR0 benutzt. Das arbeitet in analoger Weise wie GPIO_SET0, aber hier zeigen die auf 1 gesetzten Bits im zugewiesenen Wert an, welche GPIO-Pins auf low (0) gesetzt werden (und damit, welche Ports auf 0 gesetzt werden und damit, welche LEDs ausgeschaltet werden). Zum Beispiel setzt die Programmzeile GPIO_CLR0 = 0x100; (hexadezimal 0x100 = 0001 0000 0000 binär Bit 8 ist gesetzt) das GPIO-Pin 8 auf low und schaltet somit die LED für Port 11 aus, weil dieser Port mit GP8 verbunden ist. (In leds.c werden immer alle LEDs zusammen ein- oder ausgeschaltet, aber das kann man natürlich anders machen) 21