Доработка. Функция для чтения параллельного порта. Пример в котором данные с параллельной шины направляются в stdout
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
Reference in New Issue
Block a user