mraa_spi_sw_context sw_spi_init(uint8_t pin_sck, uint8_t pin_mosi, uint8_t pin_miso) { mraa_spi_sw_context pspi = (mraa_spi_sw_context)malloc(sizeof(struct mraa_sw_spi)); if (pspi == NULL) return NULL; pspi->sck = mraa_gpio_init(pin_sck); pspi->sdi = mraa_gpio_init(pin_mosi); pspi->sdo = mraa_gpio_init(pin_miso); mraa_gpio_dir(pspi->sck, MRAA_GPIO_OUT); mraa_gpio_dir(pspi->sdi, MRAA_GPIO_OUT); mraa_gpio_dir(pspi->sdo, MRAA_GPIO_IN); mraa_gpio_use_mmaped(pspi->sck, 1); mraa_gpio_use_mmaped(pspi->sdi, 1); mraa_gpio_use_mmaped(pspi->sdo, 1); return pspi; }
int main(int argc, char **argv) { int i, j, output, outputArray[n_reads], i_reads, tmp; mraa_gpio_context clk = mraa_gpio_init(4); mraa_gpio_context dat = mraa_gpio_init(2); mraa_gpio_dir(clk, MRAA_GPIO_OUT); mraa_gpio_dir(dat, MRAA_GPIO_IN); mraa_gpio_use_mmaped(clk, 1); i_reads = n_reads; while (i_reads > 0) { while(mraa_gpio_read(dat)) {} output = 0; for(i = 0; i < 24; i++) { mraa_gpio_write(clk, 1); fuckDelay(2000); output |= (mraa_gpio_read(dat)<< (23-i)); mraa_gpio_write(clk, 0); fuckDelay(2000); } mraa_gpio_write(clk, 1); fuckDelay(2000); mraa_gpio_write(clk, 0); if(output < 16777215) { //fprintf(stdout, "%d\n", output); outputArray[i_reads-1] = output; i_reads--; // decrement only if the valid read } } //sorting the array for(i = 1; i < n_reads; i++){ j = i; while ((j > 0) && (outputArray[j-1]>outputArray[j])) { tmp = outputArray[j]; outputArray[j] = outputArray[j-1]; outputArray[j-1] = tmp; j--; } } fprintf(stdout, "%d\n", outputArray[5]); }
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); }
// initialization in GPIO mode speaker_context speaker_init(int pin) { speaker_context dev = NULL; if (!(dev = _common_init())) return NULL; dev->is_pwm = false; if (!(dev->gpio = mraa_gpio_init(pin))) { printf("%s: mraa_gpio_init() failed.\n", __FUNCTION__); speaker_close(dev); return NULL; } #if defined(UPM_PLATFORM_LINUX) // Would prefer, but not fatal if not available mraa_gpio_use_mmaped(dev->gpio, 1); #endif // UPM_PLATFORM_LINUX mraa_gpio_dir(dev->gpio, MRAA_GPIO_OUT); return dev; }
/** * Enable use of mmap i/o if available. * * @param enable true to use mmap * @return Result of operation */ Result useMmap(bool enable) { return (Result) mraa_gpio_use_mmaped(m_gpio, (mraa_boolean_t) enable); }
/** * Enable use of mmap i/o if available. * * @param enable true to use mmap * @return Result of operation */ mraa_result_t useMmap(bool enable) { return mraa_gpio_use_mmaped(m_gpio, (mraa_boolean_t) enable); }