WIP. Для отладки
This commit is contained in:
17
examples/gpio-interrupt.c
Executable file → Normal file
17
examples/gpio-interrupt.c
Executable file → Normal file
@@ -19,6 +19,14 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <wiringPi.h>
|
#include <wiringPi.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
жёлтый д0
|
||||||
|
красный такт
|
||||||
|
чёрный д1
|
||||||
|
синий д2
|
||||||
|
зелёный д3
|
||||||
|
оранжевый - общий
|
||||||
|
*/
|
||||||
|
|
||||||
unsigned int wr_pin = 27; /** Вывод для сигнала записи */
|
unsigned int wr_pin = 27; /** Вывод для сигнала записи */
|
||||||
unsigned int pins[] = { 21, 7, 6, 5, 25, 24, 23, 22 }; /** Выводы для данных */
|
unsigned int pins[] = { 21, 7, 6, 5, 25, 24, 23, 22 }; /** Выводы для данных */
|
||||||
@@ -98,9 +106,9 @@ bool fifo_try_write(struct fifo *ff, char* buffer, size_t len) {
|
|||||||
|
|
||||||
static struct fifo isr_ff;
|
static struct fifo isr_ff;
|
||||||
|
|
||||||
|
int c = 0;
|
||||||
void isr_handle(void) {
|
void isr_handle(void) {
|
||||||
char byte_read = digitalReadPins(pins, sizeof pins / sizeof pins[0]);
|
char byte_read = 0x0f & digitalReadPins(pins, sizeof pins / sizeof pins[0]);
|
||||||
fifo_try_write(&isr_ff, &byte_read, 1);
|
fifo_try_write(&isr_ff, &byte_read, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,7 +145,10 @@ int main(void) {
|
|||||||
while (true) {
|
while (true) {
|
||||||
bool is_read = fifo_try_read(&isr_ff, buffer, sizeof buffer);
|
bool is_read = fifo_try_read(&isr_ff, buffer, sizeof buffer);
|
||||||
if (is_read) {
|
if (is_read) {
|
||||||
fwrite(buffer, 1U, sizeof buffer, stdout);
|
//fwrite(buffer, 1U, sizeof buffer, stdout);
|
||||||
|
for (int i = 0; i < sizeof buffer; i ++) {
|
||||||
|
printf("%02d: %02x\n", i, buffer[i]);
|
||||||
|
}
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
Reference in New Issue
Block a user