Beispiel #1
0
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;
}
Beispiel #2
0
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]);

} 
Beispiel #3
0
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);
}
Beispiel #4
0
// 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;
}
Beispiel #5
0
 /**
  * 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);
 }