int init_lcd_pin_direction() { // GPIO2 LCD // 1 +5V -> 2 VDD // 2 Ground -> 1 GND // // 3 +3.3V EMPTY // 4 Ground EMPTY // // // 5 PB0 (TWI0-SCK) -> 4 RS // 6 PG11 (USBH_EN) -> 5 R/W // 7 PB1 (TWI0-SDA) -> 6 E // // 8 PG10 (VGA_DIS) -> 7 DB0 // 10 PG9 (LED1) -> 8 DB1 // 11 PB3 -> 9 DB2 // 12 PE11 -> 10 DB3 // 13 PB4 -> 11 DB4 // 14 PE10 -> 12 DB5 // 16 PE9 -> 13 DB6 // 18 PE8 -> 14 DB7 // 9 PB2 (PWM0) ERROR // 15 PB10 ERROR // 17 PB15 (TWI1-SCK) ERROR int ret; //init gpio ret = sunxi_gpio_init(); if(ret) { printf("sunxi_gpio_init ERROR\n"); return -1; } /* //RS, R/W, E sunxi_gpio_set_cfgpin(SUNXI_GPB(0), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPG(11), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPB(1), SUNXI_GPIO_OUTPUT); //DB0 - DB7 sunxi_gpio_set_cfgpin(SUNXI_GPG(10), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPG(9), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPB(3), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPE(11), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPB(4), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPE(10), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPE(9), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPE(8), SUNXI_GPIO_OUTPUT); */ sunxi_gpio_set_cfgpin(SUNXI_GPA(0), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPA(1), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPB(0), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPB(1), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPI(0), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPI(1), SUNXI_GPIO_OUTPUT); sunxi_gpio_set_cfgpin(SUNXI_GPG(9), SUNXI_GPIO_OUTPUT); return 0; }
int main(int argc, const char* argv[] ) { //30ms delay delay(30); init_lcd_pin_direction(); delay(30); /* lcd_set_RS(0); lcd_set_RW(0); lcd_set_E(0); lcd_set_data(0x3A); lcd_set_E(1); delay(30); lcd_set_E(0); lcd_set_data(0x0F); lcd_set_E(1); delay(30); lcd_set_E(0); */ int pin; char *port; int i, k, val; val = 0; printf("app startup\n"); printf("argv[1]:%s argv[2]:%s\n", argv[1], argv[2]); port = argv[1]; pin = atoi(argv[2]); printf("port:%s\n",port); printf("pin:%d\n",pin); if(!strcmp(port, "G")) { while(1) { //sunxi_gpio_output(SUNXI_GPG(9), 0); sunxi_gpio_output(SUNXI_GPG(pin), 0); delay(3000); //sunxi_gpio_output(SUNXI_GPG(9), 1); sunxi_gpio_output(SUNXI_GPG(pin), 1); delay(3000); }; } else if(!strcmp(port, "A")) { while(1) { sunxi_gpio_output(SUNXI_GPA(pin), 0); //sunxi_gpio_output(SUNXI_GPA(pin), 0); delay(3000); sunxi_gpio_output(SUNXI_GPA(pin), 1); //sunxi_gpio_output(SUNXI_GPA(pin), 1); delay(3000); }; } else if(!strcmp(port, "B")) { while(1) { sunxi_gpio_output(SUNXI_GPB(pin), 0); //sunxi_gpio_output(SUNXI_GPA(pin), 0); delay(3000); sunxi_gpio_output(SUNXI_GPB(pin), 1); //sunxi_gpio_output(SUNXI_GPA(pin), 1); delay(3000); }; } else if(!strcmp(port, "I")) { while(1) { sunxi_gpio_output(SUNXI_GPI(pin), 0); //sunxi_gpio_output(SUNXI_GPA(pin), 0); delay(3000); sunxi_gpio_output(SUNXI_GPI(pin), 1); //sunxi_gpio_output(SUNXI_GPA(pin), 1); delay(3000); }; } return 0; }
SUNXI_GPE(0), SUNXI_GPE(1), SUNXI_GPE(2), SUNXI_GPE(3), SUNXI_GPE(4), SUNXI_GPE(5), SUNXI_GPE(6), SUNXI_GPE(7), SUNXI_GPE(8), SUNXI_GPE(9), SUNXI_GPE(10), SUNXI_GPE(11), -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, SUNXI_GPF(0), SUNXI_GPF(1), SUNXI_GPF(2), SUNXI_GPF(3), SUNXI_GPF(4), SUNXI_GPF(5), -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, SUNXI_GPG(0), SUNXI_GPG(1), SUNXI_GPG(2), SUNXI_GPG(3), SUNXI_GPG(4), SUNXI_GPG(5), SUNXI_GPG(6), SUNXI_GPG(7), SUNXI_GPG(8), SUNXI_GPG(9), SUNXI_GPG(10), SUNXI_GPG(11), -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, SUNXI_GPH(0), SUNXI_GPH(1), SUNXI_GPH(2), SUNXI_GPH(3), SUNXI_GPH(4), SUNXI_GPH(5), SUNXI_GPH(6), SUNXI_GPH(7), SUNXI_GPH(8), SUNXI_GPH(9), SUNXI_GPH(10), SUNXI_GPH(11), SUNXI_GPH(12), SUNXI_GPH(13), SUNXI_GPH(14), SUNXI_GPH(15), SUNXI_GPH(16), SUNXI_GPH(17), SUNXI_GPH(18), SUNXI_GPH(19), SUNXI_GPH(20), SUNXI_GPH(21), SUNXI_GPH(22), SUNXI_GPH(23), SUNXI_GPH(24), SUNXI_GPH(25), SUNXI_GPH(26), SUNXI_GPH(27), -1, -1, -1, -1, SUNXI_GPI(0), SUNXI_GPI(1), SUNXI_GPI(2), SUNXI_GPI(3), SUNXI_GPI(4), SUNXI_GPI(5), SUNXI_GPI(6), SUNXI_GPI(7), SUNXI_GPI(8), SUNXI_GPI(9), SUNXI_GPI(10), SUNXI_GPI(11), SUNXI_GPI(12), SUNXI_GPI(13), SUNXI_GPI(14), SUNXI_GPI(15), SUNXI_GPI(16), SUNXI_GPI(17), SUNXI_GPI(18), SUNXI_GPI(19), SUNXI_GPI(20), SUNXI_GPI(21) }; // Translation between pin number and gpio number from fex // static int convPinToGpio[81] = {55, 56, 57, 58, 59, 60, 0, 0, 0, 0, // 0, 0, 61, 62, 0, 0, 0, 53, 49, 50, // 51, 52, 54, 0, 0, 0, 0, 37, 38, 39, // 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, // 10, 11, 12, 13, 14, 15, 16, 31, 32, 0, // 0, 0, 0, 17, 18, 19, 20, 21, 22, 23, // 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, // 36};
#include "nRF24L01.h" #include "RF24.h" #include "printf.h" #include "gpio.h" // // Hardware configuration // // Set up nRF24L01 radio on //SPI bus plus pins 8 & 9 void setup(void); void loop(void); RF24 radio(SUNXI_GPI(14), SUNXI_GPI(15), "/dev/spidev2.0"); // // Channel info // const short num_channels = 128; short values[num_channels]; // int main(int argv, char** argc) { setup(); while (1) loop(); return 0; } // Setup // void setup(void) { // // Print preamble // printf("\n\rRF24/examples/scanner/\n\r"); //