mstroh76 преди 9 месеца
родител
ревизия
af5baeac32
променени са 6 файла, в които са добавени 57 реда и са изтрити 17 реда
  1. +1
    -1
      VERSION
  2. +1
    -1
      debian-template/wiringPi/DEBIAN/control
  3. +19
    -7
      gpio/readall.c
  4. +0
    -0
      newVersion
  5. +2
    -2
      version.h
  6. +34
    -6
      wiringPi/wiringPi.c

+ 1
- 1
VERSION Целия файл

@@ -1 +1 @@
2.72
2.73

+ 1
- 1
debian-template/wiringPi/DEBIAN/control Целия файл

@@ -1,5 +1,5 @@
Package: wiringpi
Version: 2.72
Version: 2.73
Section: libraries
Priority: optional
Architecture: armhf


+ 19
- 7
gpio/readall.c Целия файл

@@ -75,11 +75,23 @@ static void doReadallExternal (void)
*********************************************************************************
*/

static char *alts [] =
static const char unknown_alt[] = " - ";
static const char *alts [] =
{
"IN", "OUT", "ALT5", "ALT4", "ALT0", "ALT1", "ALT2", "ALT3"
"IN", "OUT", "ALT5", "ALT4", "ALT0", "ALT1", "ALT2", "ALT3", "ALT6", "ALT7", "ALT8", "ALT9"
} ;


static const char* GetAltString(int alt) {

if (alt>=0 && alt<=11) {
return alts[alt];
}

return unknown_alt;
}


static int physToWpi [64] =
{
-1, // 0
@@ -177,7 +189,7 @@ static void readallPhys (int physPin)
else
pin = physToWpi [physPin] ;

printf (" | %4s", alts [getAlt (pin)]) ;
printf (" | %4s", GetAltString(getAlt (pin))) ;
printf (" | %d", digitalRead (pin)) ;
}

@@ -201,7 +213,7 @@ static void readallPhys (int physPin)
pin = physToWpi [physPin] ;

printf (" | %d", digitalRead (pin)) ;
printf (" | %-4s", alts [getAlt (pin)]) ;
printf (" | %-4s", GetAltString(getAlt (pin))) ;
}

printf (" | %-5s", physNames [physPin]) ;
@@ -233,11 +245,11 @@ static void allReadall (void)
for (pin = 0 ; pin < 27 ; ++pin)
{
printf ("| %3d ", pin) ;
printf ("| %-4s ", alts [getAlt (pin)]) ;
printf ("| %-4s ", GetAltString(getAlt (pin))) ;
printf ("| %s ", digitalRead (pin) == HIGH ? "High" : "Low ") ;
printf ("| ") ;
printf ("| %3d ", pin + 27) ;
printf ("| %-4s ", alts [getAlt (pin + 27)]) ;
printf ("| %-4s ", GetAltString(getAlt (pin + 27))) ;
printf ("| %s ", digitalRead (pin + 27) == HIGH ? "High" : "Low ") ;
printf ("|\n") ;
}
@@ -404,5 +416,5 @@ void doQmode (int argc, char *argv [])
}

pin = atoi (argv [2]) ;
printf ("%s\n", alts [getAlt (pin)]) ;
printf ("%s\n", GetAltString(getAlt (pin))) ;
}

+ 0
- 0
newVersion Целия файл


+ 2
- 2
version.h Целия файл

@@ -1,3 +1,3 @@
#define VERSION "2.72"
#define VERSION "2.73"
#define VERSION_MAJOR 2
#define VERSION_MINOR 72
#define VERSION_MINOR 73

+ 34
- 6
wiringPi/wiringPi.c Целия файл

@@ -135,7 +135,7 @@ const unsigned int RP1_RIO_OE = (0x0004/4);
const unsigned int RP1_RIO_IN = (0x0008/4);

//RP1 chip (@Pi5) RIO offset for set/clear value
const unsigned int RP1_SET_OFFSET = (0x2000/4):
const unsigned int RP1_SET_OFFSET = (0x2000/4);
const unsigned int RP1_CLR_OFFSET = (0x3000/4);

//RP1 chip (@Pi5) PDE/PDU pull-up/-down enable
@@ -167,7 +167,7 @@ const unsigned int RP1_PADS0_Addr = 0x400f0000;
// due to the Pi v2, v3, etc. and the new /dev/gpiomem interface

const char* gpiomem_global = "/dev/mem";
const char* gpiomem_BCM = "/dev/gpiomem"
const char* gpiomem_BCM = "/dev/gpiomem";
const char* gpiomem_RP1 = "/dev/gpiomem0";
const int gpiomem_RP1_Size = 0x00030000;

@@ -562,11 +562,12 @@ int GetMaxPin() {

#define RETURN_ON_MODEL5 if (PI_MODEL_5 == RaspberryPiModel) { if (wiringPiDebug) printf("Function not supported on Pi5\n"); return; }
void FailOnModel5() {
int FailOnModel5() {
if (PI_MODEL_5 == RaspberryPiModel) {
return wiringPiFailure (WPI_ALMOST, "Function not supported on Raspberry Pi 5.\n"
" Unable to continue. Keep an eye of new versions at https://github.com/GrazerComputerClub/WiringPi\n") ;
}
return 0;
}

// gpioToGPFSEL:
@@ -1287,7 +1288,35 @@ int getAlt (int pin)
return 0 ;

if (PI_MODEL_5 == RaspberryPiModel) {
alt = (gpio[2*pin+1] & RP1_FSEL_NONE_HW); //0-4 function, 5-11 debounce time
alt = (gpio[2*pin+1] & RP1_FSEL_NONE_HW); //0-4 function

/* BCM definiton
000 = GPIO Pin 9 is an input
001 = GPIO Pin 9 is an output
100 = GPIO Pin 9 takes alternate function 0
101 = GPIO Pin 9 takes alternate function 1
110 = GPIO Pin 9 takes alternate function 2
111 = GPIO Pin 9 takes alternate function 3
011 = GPIO Pin 9 takes alternate function 4
010 = GPIO Pin 9 takes alternate function 5
*/
switch(alt) {
case 0: return 4;
case 1: return 5;
case 2: return 6;
case 3: return 7;
case 4: return 3;
case RP1_FSEL_GPIO: {
unsigned int outputmask = gpio[2*pin] & 0x3000; //Bit13-OETOPAD + Bit12-OEFROMPERI
return (outputmask==0x3000) ? 1 : 0; //1=OUT 0=IN
}
case 6: return 8;
case 7: return 9;
case 8: return 10;
case 9: return 11;
default:return alt;
}

} else {
fSel = gpioToGPFSEL [pin] ;
shift = gpioToShift [pin] ;
@@ -1678,7 +1707,6 @@ void pullUpDnControl (int pin, int pud)
else if (wiringPiMode != WPI_MODE_GPIO)
return ;

unsigned int pull;
if (PI_MODEL_5 == RaspberryPiModel) {
unsigned int pullbits = pads[1+pin] & RP1_INV_PUD_MASK; // remove bits
switch (pud){
@@ -1830,7 +1858,7 @@ void digitalWrite (int pin, int value)
else if (wiringPiMode != WPI_MODE_GPIO)
return ;
if (PI_MODEL_5 == RaspberryPiModel) {
if (value == LOW)
if (value == LOW) {
//printf("Set pin %d >>0x%08x<< to low\n", pin, 1<<pin);
rio[RP1_RIO_OUT + RP1_CLR_OFFSET] = 1<<pin;
} else {


Зареждане…
Отказ
Запис