Доработка. Функция для чтения параллельного порта. Пример в котором данные с параллельной шины направляются в stdout

This commit is contained in:
sasha80
2026-04-17 15:42:14 +03:00
parent ade3b26942
commit 9d8910af0a
5 changed files with 159 additions and 93 deletions

View File

@@ -2585,6 +2585,34 @@ unsigned int digitalReadByte (void)
}
unsigned int digitalReadPins(unsigned int *pins, unsigned int count)
{
uint32_t i, x ;
uint32_t raw ;
uint32_t data = 0 ;
FailOnModel5("digitalReadPins");
if (wiringPiMode == WPI_MODE_GPIO_SYS)
{
return 0;
}
else
{
raw = *(gpio + gpioToGPLEV [0]) ; // First bank for these pins
data = 0;
for (i = 0 ; i < count ; ++ i)
{
uint32_t pin = pins[i] ;
x = pinToGpio [pin & 63];
data |= ((raw & (1 << x)) > 0) << i;
}
}
return data;
}
/*
* digitalWriteByte2:
* digitalReadByte2:

View File

@@ -288,6 +288,7 @@ extern void pwmSetMode (int mode) ;
extern void pwmSetRange (unsigned int range) ;
extern void pwmSetClock (int divisor) ;
extern void gpioClockSet (int pin, int freq) ;
extern unsigned int digitalReadPins (unsigned int *pins, unsigned int count) ;
extern unsigned int digitalReadByte (void) ;
extern unsigned int digitalReadByte2 (void) ;
extern void digitalWriteByte (int value) ;