Exemple #1
0
int gpio_set_value(unsigned gpio, int value)
{
#ifdef AXP_GPIO
	if (gpio >= SUNXI_GPIO_AXP0_START)
		return axp_gpio_set_value(gpio - SUNXI_GPIO_AXP0_START, value);
#endif
	return sunxi_gpio_output(gpio, value);
}
Exemple #2
0
void lcd_set_data(unsigned uValue) {

	sunxi_gpio_output(SUNXI_GPG(10), uValue & 0x01);
	sunxi_gpio_output(SUNXI_GPG(9),  uValue & 0x02);
	sunxi_gpio_output(SUNXI_GPB(3),  uValue & 0x04);
	sunxi_gpio_output(SUNXI_GPE(11), uValue & 0x08);
	sunxi_gpio_output(SUNXI_GPB(4),  uValue & 0x10);
	sunxi_gpio_output(SUNXI_GPE(10), uValue & 0x20);
	sunxi_gpio_output(SUNXI_GPE(9),  uValue & 0x40);
	sunxi_gpio_output(SUNXI_GPE(8),  uValue & 0x80);
}
Exemple #3
0
int gpio_direction_output(unsigned gpio, int value)
{
#ifdef AXP_GPIO
	if (gpio >= SUNXI_GPIO_AXP0_START)
		return axp_gpio_direction_output(gpio - SUNXI_GPIO_AXP0_START,
						 value);
#endif
	sunxi_gpio_set_cfgpin(gpio, SUNXI_GPIO_OUTPUT);

	return sunxi_gpio_output(gpio, value);
}
Exemple #4
0
/**
 * Set output value of GPIO. Pin must be configured as output or else raises
 * exception. For high output level - 1, low - 0.
 * 
 * @param self
 * @param args Tuple that holds GPIO number and value 
 * @return none
 */
static PyObject* py_output(PyObject* self, PyObject* args) {

    int gpio;
    int value;

    /* Parse arguments. Two integers are required. */
    if (!PyArg_ParseTuple(args, "ii", &gpio, &value))
        return NULL;

    /* Set output value and check return status. */
    if (sunxi_gpio_output(gpio, value) < 0) {
        return PyErr_SetFromErrno(PyExc_IOError);
    }
    
    Py_RETURN_NONE;
}
Exemple #5
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;
}
Exemple #6
0
void lcd_set_E(unsigned uValue) {
	sunxi_gpio_output(SUNXI_GPB(1), uValue);
}
Exemple #7
0
void lcd_set_RW(unsigned uValue) {
	sunxi_gpio_output(SUNXI_GPG(11), uValue);
}
/*
 * digitalWrite:
 *	Set an output bit
 *********************************************************************************
 */
void digitalWrite(int pin, int value)
{
  sunxi_gpio_output(pinWiringOli(pin), value);
}
int gpio_set_value(unsigned gpio, int value)
{
	return sunxi_gpio_output(gpio, value);
}
int gpio_direction_output(unsigned gpio, int value)
{
	sunxi_gpio_set_cfgpin(gpio, SUNXI_GPIO_OUTPUT);

	return sunxi_gpio_output(gpio, value);
}