T Shirt d'ambiance connecté : Différence entre versions

De Wiki d'activités IMA
(Code ADC)
 
m (Partie Edison)
Ligne 2 : Ligne 2 :
 
<pre>
 
<pre>
 
#include "mraa/aio.h"
 
#include "mraa/aio.h"
#define GPIO_NUMBER                     12
+
#define GPIO_NUMBER             12
 
#define GPIO_BASE_OFFSET        2
 
#define GPIO_BASE_OFFSET        2
 
int init_gpio(mraa_gpio_context* gpios){
 
int init_gpio(mraa_gpio_context* gpios){
Ligne 18 : Ligne 18 :
 
}
 
}
 
int main(){
 
int main(){
     uint8_t                         ret;
+
     uint8_t             ret;
     uint16_t                   adc_value = 0;
+
     uint16_t           adc_value = 0;
 
     mraa_aio_context    adc_a0 = NULL;
 
     mraa_aio_context    adc_a0 = NULL;
     mraa_gpio_context       gpio[GPIO_NUMBER];
+
     mraa_gpio_context   gpio[GPIO_NUMBER];
 
     mraa_init();
 
     mraa_init();
 
     adc_a0 = mraa_aio_init(0);
 
     adc_a0 = mraa_aio_init(0);
Ligne 54 : Ligne 54 :
 
}
 
}
 
</pre>
 
</pre>
 +
 
== Partie Artix 7 ==
 
== Partie Artix 7 ==

Version du 16 janvier 2016 à 22:48

Partie Edison

#include "mraa/aio.h"
#define GPIO_NUMBER             12
#define GPIO_BASE_OFFSET        2
int init_gpio(mraa_gpio_context* gpios){
        int     i;
        for(i=0; i<GPIO_NUMBER; i++) gpios[i] = NULL;
        for(i=0; i<GPIO_NUMBER; i++){
                gpios[i] = mraa_gpio_init(GPIO_BASE_OFFSET+i);
                if(gpios[i] == NULL){
                        printf("Unable to get context for pin %d\n", i);
                        return 1;
                }
                mraa_gpio_dir(gpios[i], MRAA_GPIO_OUT);
        }
        return 0;
}
int main(){
    uint8_t             ret;
    uint16_t            adc_value = 0;
    mraa_aio_context    adc_a0 = NULL;
    mraa_gpio_context   gpio[GPIO_NUMBER];
    mraa_init();
    adc_a0 = mraa_aio_init(0);
    mraa_aio_set_bit(adc_a0, 12);   // 12 bits resolution
    ret = init_gpio(gpio);
    if (adc_a0 == NULL){
        printf("Unable to initialize ADC\n");
        return 1;
    }
    if(ret != 0){
        printf("Unable to initialize GPIOs\n");
        return 2;
    }
    for (;;){
        adc_value = mraa_aio_read(adc_a0);
        fprintf(stdout, "ADC A0 read %X - %d\n", adc_value, adc_value);
        mraa_gpio_write(gpio[0x0], ((adc_value & 0x001) == 0x001));
        mraa_gpio_write(gpio[0x1], ((adc_value & 0x002) == 0x002));
        mraa_gpio_write(gpio[0x2], ((adc_value & 0x004) == 0x004));
        mraa_gpio_write(gpio[0x3], ((adc_value & 0x008) == 0x008));
        mraa_gpio_write(gpio[0x4], ((adc_value & 0x010) == 0x010));
        mraa_gpio_write(gpio[0x5], ((adc_value & 0x020) == 0x020));
        mraa_gpio_write(gpio[0x6], ((adc_value & 0x040) == 0x040));
        mraa_gpio_write(gpio[0x7], ((adc_value & 0x080) == 0x080));
        mraa_gpio_write(gpio[0x8], ((adc_value & 0x100) == 0x100));
        mraa_gpio_write(gpio[0x9], ((adc_value & 0x200) == 0x200));
        mraa_gpio_write(gpio[0xA], ((adc_value & 0x400) == 0x400));
        mraa_gpio_write(gpio[0xB], ((adc_value & 0x800) == 0x800));
    }
    mraa_aio_close(adc_a0);
    return MRAA_SUCCESS;
}

Partie Artix 7