T Shirt d'ambiance connecté : Différence entre versions
De Wiki de Projets IMA
(Code ADC) |
m (→Partie Edison) |
||
Ligne 2 : | Ligne 2 : | ||
<pre> | <pre> | ||
#include "mraa/aio.h" | #include "mraa/aio.h" | ||
− | #define GPIO_NUMBER | + | #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 | + | uint8_t ret; |
− | uint16_t | + | uint16_t adc_value = 0; |
mraa_aio_context adc_a0 = NULL; | mraa_aio_context adc_a0 = NULL; | ||
− | mraa_gpio_context | + | 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; }