mraa_result_t mraa_intel_galileo_gen2_i2c_init_pre(unsigned int bus) { mraa_gpio_context io18 = mraa_gpio_init_raw(57); int status = 0; if (io18 == NULL) { return MRAA_ERROR_UNSPECIFIED; } status += mraa_gpio_dir(io18, MRAA_GPIO_IN); status += mraa_gpio_mode(io18, MRAA_GPIO_HIZ); mraa_gpio_close(io18); mraa_gpio_context io19 = mraa_gpio_init_raw(59); if (io19 == NULL) { return MRAA_ERROR_UNSPECIFIED; } status += mraa_gpio_dir(io19, MRAA_GPIO_IN); status += mraa_gpio_mode(io19, MRAA_GPIO_HIZ); mraa_gpio_close(io19); if (status > 0) { return MRAA_ERROR_UNSPECIFIED; } return MRAA_SUCCESS; }
tb6612::tb6612(): _dcA(0.0), _dcB(0.0) { // _pwmA is pwm channel 0, on pin 20 in mraa _pwmA = mraa_pwm_init(20); mraa_pwm_period_us(_pwmA, 1000); mraa_pwm_enable(_pwmA, 1); // _pwmB is pwm channel 1, on pin 14 in mraa _pwmB = mraa_pwm_init(14); mraa_pwm_period_us(_pwmB, 1000); mraa_pwm_enable(_pwmB, 1); mraa_pwm_write(_pwmA, 0.01); mraa_pwm_write(_pwmB, 0.01); mraa_pwm_write(_pwmA, 0.0); mraa_pwm_write(_pwmB, 0.0); // _A1 and _A2 are on GPIO48 and GPIO47, respectively, which are pins 33 and // 46 in mraa, respectively. _A1 = mraa_gpio_init(33); _A2 = mraa_gpio_init(46); mraa_gpio_dir(_A1, MRAA_GPIO_OUT); mraa_gpio_mode(_A1, MRAA_GPIO_STRONG); mraa_gpio_write(_A1, 1); mraa_gpio_dir(_A2, MRAA_GPIO_OUT); mraa_gpio_mode(_A2, MRAA_GPIO_STRONG); mraa_gpio_write(_A2, 1); // _B1 and _B2 are on GPIO15 and GPIO14, respectively, which are pins 48 and // 36, respectively _B1 = mraa_gpio_init(48); _B2 = mraa_gpio_init(36); mraa_gpio_dir(_B1, MRAA_GPIO_OUT); mraa_gpio_mode(_B1, MRAA_GPIO_STRONG); mraa_gpio_write(_B1, 1); mraa_gpio_dir(_B2, MRAA_GPIO_OUT); mraa_gpio_mode(_B2, MRAA_GPIO_STRONG); mraa_gpio_write(_B2, 1); // _standbyPin is on GPIO49, which is pin 47 in mraa _standbyPin = mraa_gpio_init(47); mraa_gpio_dir(_standbyPin, MRAA_GPIO_OUT); mraa_gpio_mode(_standbyPin, MRAA_GPIO_STRONG); mraa_gpio_write(_standbyPin, 1); }
void GPIO_Init(void) { mraa_init(); //J18-2 --> GPIO-165 SCS = mraa_gpio_init(15); //printf("Ports initialized\n"); mraa_gpio_use_mmaped(SCS, 1); mraa_gpio_mode(SCS, MRAA_GPIO_PULLUP); //printf("Ports modes set\n"); mraa_gpio_dir(SCS, MRAA_GPIO_OUT); //printf("Port directions set\n"); VDD = mraa_gpio_init(31); // GP44 mraa_gpio_mode(VDD, MRAA_GPIO_PULLUP); mraa_gpio_dir(VDD, MRAA_GPIO_OUT); }
void initialize() { pwm1 = mraa_pwm_init(20); mraa_pwm_period_us(pwm1, 870); mraa_pwm_enable(pwm1, 1); pwm2 = mraa_pwm_init(14); mraa_pwm_period_us(pwm2, 870); mraa_pwm_enable(pwm2, 1); mraa_pwm_write(pwm1, 0.01); mraa_pwm_write(pwm2, 0.01); mraa_pwm_write(pwm1, 0.0); mraa_pwm_write(pwm2, 0.0); A1 = mraa_gpio_init(48); A2 = mraa_gpio_init(36); mraa_gpio_dir(A1, MRAA_GPIO_OUT); mraa_gpio_mode(A1, MRAA_GPIO_STRONG); mraa_gpio_write(A1, 1); mraa_gpio_dir(A2, MRAA_GPIO_OUT); mraa_gpio_mode(A2, MRAA_GPIO_STRONG); mraa_gpio_write(A2, 1); B1 = mraa_gpio_init(33); B2 = mraa_gpio_init(46); mraa_gpio_dir(B1, MRAA_GPIO_OUT); mraa_gpio_mode(B1, MRAA_GPIO_STRONG); mraa_gpio_write(B1, 1); mraa_gpio_dir(B2, MRAA_GPIO_OUT); mraa_gpio_mode(B2, MRAA_GPIO_STRONG); mraa_gpio_write(B2, 1); standbyPin = mraa_gpio_init(47); mraa_gpio_dir(standbyPin, MRAA_GPIO_OUT); mraa_gpio_mode(standbyPin, MRAA_GPIO_STRONG); mraa_gpio_write(standbyPin, 1); }
void GPIO_Init(void) { mraa_init(); //J18-2 --> GPIO-165 SCS = mraa_gpio_init(15); printf("Ports initialized\n"); mraa_gpio_mode(SCS, MRAA_GPIO_PULLUP); printf("Ports modes set\n"); mraa_gpio_dir(SCS, MRAA_GPIO_OUT); printf("Port directions set\n"); }
int main(int argc, char *argv[]) { mraa_init(); fprintf(stdout, "Hello mraa.\nVersion: %s\n", mraa_get_version()); // LED out = mraa_gpio_init(20); if(out == NULL){ printf("Error: init out.\r\n"); return 1; } mraa_gpio_dir(out, MRAA_GPIO_OUT); // Switch mraa_gpio_context in = mraa_gpio_init(14); if(in == NULL){ printf("Error: init in.\r\n"); return 1; } mraa_gpio_dir(in, MRAA_GPIO_IN); mraa_gpio_mode(in, MRAA_GPIO_PULLUP); // 割込関数の登録 mraa_gpio_isr(in, MRAA_GPIO_EDGE_BOTH, interrupt_in, (void *)in); while(1) {} mraa_gpio_isr_exit(in); mraa_gpio_close(in); mraa_gpio_close(out); mraa_deinit(); return 0; }
/** * Change Gpio mode * * @param mode The mode to change the gpio into * @return Result of operation */ Result mode(Mode mode) { return (Result )mraa_gpio_mode(m_gpio, (mraa_gpio_mode_t) mode); }
mraa_result_t mraa_setup_mux_mapped(mraa_pin_t meta) { unsigned int mi; mraa_result_t ret; mraa_gpio_context mux_i = NULL; // avoids the unsigned comparison and we should never have a pin that is UINT_MAX! unsigned int last_pin = UINT_MAX; for (mi = 0; mi < meta.mux_total; mi++) { switch(meta.mux[mi].pincmd) { case PINCMD_UNDEFINED: // used for backward compatibility if(meta.mux[mi].pin != last_pin) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } mux_i = mraa_gpio_init_raw(meta.mux[mi].pin); if (mux_i == NULL) return MRAA_ERROR_INVALID_HANDLE; last_pin = meta.mux[mi].pin; } // this function will sometimes fail, however this is not critical as // long as the write succeeds - Test case galileo gen2 pin2 mraa_gpio_dir(mux_i, MRAA_GPIO_OUT); ret = mraa_gpio_write(mux_i, meta.mux[mi].value); if(ret != MRAA_SUCCESS) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } return MRAA_ERROR_INVALID_RESOURCE; } break; case PINCMD_SET_VALUE: if(meta.mux[mi].pin != last_pin) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } mux_i = mraa_gpio_init_raw(meta.mux[mi].pin); if (mux_i == NULL) return MRAA_ERROR_INVALID_HANDLE; last_pin = meta.mux[mi].pin; } ret = mraa_gpio_write(mux_i, meta.mux[mi].value); if(ret != MRAA_SUCCESS) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } return MRAA_ERROR_INVALID_RESOURCE; } break; case PINCMD_SET_DIRECTION: if(meta.mux[mi].pin != last_pin) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } mux_i = mraa_gpio_init_raw(meta.mux[mi].pin); if (mux_i == NULL) return MRAA_ERROR_INVALID_HANDLE; last_pin = meta.mux[mi].pin; } ret = mraa_gpio_dir(mux_i, meta.mux[mi].value); if(ret != MRAA_SUCCESS) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } return MRAA_ERROR_INVALID_RESOURCE; } break; case PINCMD_SET_IN_VALUE: if(meta.mux[mi].pin != last_pin) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } mux_i = mraa_gpio_init_raw(meta.mux[mi].pin); if (mux_i == NULL) return MRAA_ERROR_INVALID_HANDLE; last_pin = meta.mux[mi].pin; } ret = mraa_gpio_dir(mux_i, MRAA_GPIO_IN); if(ret == MRAA_SUCCESS) ret = mraa_gpio_write(mux_i, meta.mux[mi].value); if(ret != MRAA_SUCCESS) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } return MRAA_ERROR_INVALID_RESOURCE; } break; case PINCMD_SET_OUT_VALUE: if(meta.mux[mi].pin != last_pin) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } mux_i = mraa_gpio_init_raw(meta.mux[mi].pin); if (mux_i == NULL) return MRAA_ERROR_INVALID_HANDLE; last_pin = meta.mux[mi].pin; } ret = mraa_gpio_dir(mux_i, MRAA_GPIO_OUT); if(ret == MRAA_SUCCESS) ret = mraa_gpio_write(mux_i, meta.mux[mi].value); if(ret != MRAA_SUCCESS) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } return MRAA_ERROR_INVALID_RESOURCE; } break; case PINCMD_SET_MODE: if(meta.mux[mi].pin != last_pin) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } mux_i = mraa_gpio_init_raw(meta.mux[mi].pin); if (mux_i == NULL) return MRAA_ERROR_INVALID_HANDLE; last_pin = meta.mux[mi].pin; } ret = mraa_gpio_mode(mux_i, meta.mux[mi].value); if(ret != MRAA_SUCCESS) { if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } return MRAA_ERROR_INVALID_RESOURCE; } break; case PINCMD_SKIP: break; default: syslog(LOG_NOTICE, "mraa_setup_mux_mapped: wrong command %d on pin %d with value %d", meta.mux[mi].pincmd, meta.mux[mi].pin, meta.mux[mi].value); break; } } if (mux_i != NULL) { mraa_gpio_owner(mux_i, 0); mraa_gpio_close(mux_i); } return MRAA_SUCCESS; }
/** * Change Gpio mode * * @param mode The mode to change the gpio into * @return Result of operation */ mraa_result_t mode(Mode mode) { return mraa_gpio_mode(m_gpio, (gpio_mode_t) mode); }