41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
/**
|
|
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include "pico/stdlib.h"
|
|
#include "hardware/adc.h"
|
|
|
|
int main() {
|
|
stdio_init_all();
|
|
adc_init();
|
|
// Make sure GPIO is high-impedance, no pullups etc
|
|
adc_gpio_init(26);
|
|
adc_gpio_init(27);
|
|
|
|
while (1) {
|
|
adc_select_input(0);
|
|
uint adc_x_raw = adc_read();
|
|
adc_select_input(1);
|
|
uint adc_y_raw = adc_read();
|
|
|
|
// Display the joystick position something like this:
|
|
// X: [ o ] Y: [ o ]
|
|
const uint bar_width = 40;
|
|
const uint adc_max = (1 << 12) - 1;
|
|
uint bar_x_pos = adc_x_raw * bar_width / adc_max;
|
|
uint bar_y_pos = adc_y_raw * bar_width / adc_max;
|
|
printf("\rX: [");
|
|
for (int i = 0; i < bar_width; ++i)
|
|
putchar( i == bar_x_pos ? 'o' : ' ');
|
|
printf("] Y: [");
|
|
for (int i = 0; i < bar_width; ++i)
|
|
putchar( i == bar_y_pos ? 'o' : ' ');
|
|
printf("]");
|
|
sleep_ms(50);
|
|
|
|
}
|
|
}
|