#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "pico/stdlib.h"
#include "pico/time.h"
#include "hardware/uart.h"
struct keyMap
{
int gpio;
char key;
bool pressed;
int lastTick;
};
keyMap keys[] = {
{
15,
'L',
false,
0
},
{
14,
'U',
false,
0
},
{
13,
'D',
false,
0
},
{
12,
'R',
false,
0
},
{
11,
'E',
false,
0
},
{
10,
'B',
false,
0
},
{
20,
'A',
false,
0
},
{
21,
'C',
false,
0
}
};
#define KEY_NUM 8
int main() {
stdio_init_all();
uart_init(uart0, 921600);
gpio_set_function(PICO_DEFAULT_UART_TX_PIN, GPIO_FUNC_UART);
gpio_set_function(PICO_DEFAULT_UART_RX_PIN, GPIO_FUNC_UART);
sleep_ms(1000); // Allow serial monitor to settle
for(int i = 0; i < KEY_NUM; i++)
{
gpio_init(keys[i].gpio);
gpio_set_dir(keys[i].gpio, false);
gpio_pull_up(keys[i].gpio);
}
while(true)
{
int now = time_us_32();
for(int i = 0; i < KEY_NUM; i++)
{
char buf[5];
buf[1] = ' ';
buf[3] = '\n';
buf[4] = 0;
if(!gpio_get(keys[i].gpio) && !keys[i].pressed && now - keys[i].lastTick > 15500)
{
buf[0] = 'D';
buf[2] = keys[i].key;
puts(buf);
keys[i].lastTick = now;
keys[i].pressed = true;
continue;
}
if(gpio_get(keys[i].gpio) && keys[i].pressed && now - keys[i].lastTick > 15500)
{
buf[0] = 'U';
buf[2] = keys[i].key;
puts(buf);
keys[i].pressed = false;
keys[i].lastTick = now;
}
}
}
}
У меня лежал роутер неплохой, но не грузился, я его по ком-порту через телнет прошил, потратил на это пару дней куря гайды, и было счастье, когда он запустился, ловил 4G, раздавал, летал, но оно было недолгим, через 2 недели он опять завис и я расхуярил его молотком.
Press F
Друзья! Я потихоньку развиваю рубрику серьезного хардварного моддинга у себя в статьях. Именно поэтому я хотел бы купить себе 3D-принтер: в голове есть довольно много интересных идей.
Из ближайших: изначально героем статьи мог стать вот этот навигатор на WinCE. Большинству людей они сейчас абсолютно не нужны и их часто можно найти на свалках или в шкафах, ожидающими своего часа. А ведь между прочим, эти устройства вполне себе можно попробовать превратить в неплохой одноплатник, да ещё и с привычным (для некоторых) WinAPI. Внешних интерфейсов там два: два канала UART (один под логи, нельзя открыть из под системы на чтение) и один для GPS (сам гпс физически расположен в чипе, из-за чего его нельзя "выпаять") и Bluetooth. Из такого девайса можно сделать много чего: например, терминал для управления умным домом, ту же игровую консоль или кастомную приборную панель в машину. Отдельной крутой фишкой я считаю тотальную совместимость дисплеев: почти все дисплеи автонавигаторов легко взаимозаменяются и имеют идентичный интерфейс (TTL RGB) и распиновку
@Якорь @Лонгриды
Да не репостим мы в якорь такое
Что делать, если в первом опросе все три варианта подходят?)
Спасибо, почитал с интересом
Техномаг блин......