error: invalid type argument of 'unary *'

Hi I get this error compiling my code. It’s totally strange cause I have other codes compiling that uses the same libraries/variables/functions that here don’t compile.
Here’s the code:

#include <Wire.h>
#include <digitalWriteFast.h>
#include <superSerial.h>
#include <Arduino.h>

 
#define NO_PORTB_PINCHANGES //to indicate that port b will not be used for pin change interrupts
#include <PinChangeInt.h>   //using version 1.6beta

//Define pin
#define PINA1 A0
#define PINA2 A1
#define DIRA 13
#define PWMA 11

#define PINB1 A2
#define PINB2 A3
#define DIRB 12
#define PWMB 10

#define PINC1 2
#define PINC2 3
#define DIRC 8
#define PWMC 9

#define PIND1 4
#define PIND2 5
#define DIRD 7
#define PWMD 6

//Encoder position
double countA = 0;
double countB = 0;
double countC = 0;
double countD = 0;

unsigned long startTime, lastTime;
float beta;

//PIN A                     
void funcA1(){
  PCintPort::pinState!=digitalReadFast(PINA2)?countA++:countA--;
}
void funcA2(){
  PCintPort::pinState!=digitalReadFast(PINA1)?countA--:countA++;
}
//PIN B
void funcB1(){
  PCintPort::pinState!=digitalReadFast(PINB2)?countB++:countB--;
}
void funcB2(){
  PCintPort::pinState!=digitalReadFast(PINB1)?countB--:countB++;
}
//PIN C
void funcC1(){
  PCintPort::pinState!=digitalReadFast(PINC2)?countC++:countC--;
}
void funcC2(){
  PCintPort::pinState!=digitalReadFast(PINC1)?countC--:countC++;
}
//PIN D
void funcD1(){
  PCintPort::pinState!=digitalReadFast(PIND2)?countD++:countD--;
}
void funcD2(){
  PCintPort::pinState!=digitalReadFast(PIND1)?countD--:countD++;
}


void setup(){
Serial.begin(115200);
pinMode(PINA1, INPUT); digitalWrite(PINA1, HIGH);
PCintPort::attachInterrupt(PINA1, &funcA1, CHANGE);  
pinMode(PINA2, INPUT); digitalWrite(PINA2, HIGH);
PCintPort::attachInterrupt(PINA2, &funcA2, CHANGE);
pinMode(DIRA,OUTPUT); digitalWrite(DIRA,LOW);
pinMode(PWMA,OUTPUT); digitalWrite(PWMA,LOW);
  
pinMode(PINB1, INPUT); digitalWrite(PINB1, HIGH);
PCintPort::attachInterrupt(PINB1, &funcB1, CHANGE);  
pinMode(PINB2, INPUT); digitalWrite(PINB2, HIGH);
PCintPort::attachInterrupt(PINB2, &funcB2, CHANGE);
pinMode(DIRB,OUTPUT); digitalWrite(DIRB,LOW);
pinMode(PWMB,OUTPUT); digitalWrite(PWMB,LOW);
  
pinMode(PINC1, INPUT); digitalWrite(PINC1, HIGH);
PCintPort::attachInterrupt(PINC1, &funcC1, CHANGE);  
pinMode(PINC2, INPUT); digitalWrite(PINC2, HIGH);
PCintPort::attachInterrupt(PINC2, &funcC2, CHANGE);
pinMode(DIRC,OUTPUT); digitalWrite(DIRC,LOW);
pinMode(PWMC,OUTPUT); digitalWrite(PWMC,LOW);
  
pinMode(PIND1, INPUT); digitalWrite(PIND1, HIGH);
PCintPort::attachInterrupt(PIND1, &funcD1, CHANGE);  
pinMode(PIND2, INPUT); digitalWrite(PIND2, HIGH);
PCintPort::attachInterrupt(PIND2, &funcD2, CHANGE);
pinMode(DIRD,OUTPUT); digitalWrite(DIRD,LOW);
pinMode(PWMD,OUTPUT); digitalWrite(PWMD,LOW);

startTime = millis();
lastTime = millis();
}

void loop(){
  Serial.println("beta,in radians please");
  beta = sSerial.readFloat();
  analogWrite(PWMA, 150); 
  analogWrite(DIRA, HIGH);
  analogWrite(PWMB, 150);
  analogWrite(DIRB, HIGH);
  analogWrite(PWMC, 150);
  analogWrite(DIRC, HIGH};
  analogWrite(PWMD, 150);
  analogWrite(DIRD, HIGH);
  delay(5000);
  analogWrite(PWMA, 0); 
  analogWrite(DIRA, LOW);
  analogWrite(PWMB, 0);
  analogWrite(DIRB, LOW);
  analogWrite(PWMC, 0);
  analogWrite(DIRC, LOW};
  analogWrite(PWMD, 0);
  analogWrite(DIRD, LOW);
  Serial.println(countA);
}

The error code complete is:

sketch_may30a.cpp: In function ‘void funcA1()’:
sketch_may30a:43: error: invalid type argument of ‘unary *’
sketch_may30a.cpp: In function ‘void funcA2()’:
sketch_may30a:46: error: invalid type argument of ‘unary *’
sketch_may30a.cpp: In function ‘void funcB1()’:
sketch_may30a:50: error: invalid type argument of ‘unary *’
sketch_may30a.cpp: In function ‘void funcB2()’:
sketch_may30a:53: error: invalid type argument of ‘unary *’
sketch_may30a.cpp: In function ‘void funcC1()’:
sketch_may30a:57: error: invalid type argument of ‘unary *’
sketch_may30a.cpp: In function ‘void funcC2()’:
sketch_may30a:60: error: invalid type argument of ‘unary *’
sketch_may30a.cpp: In function ‘void funcD1()’:
sketch_may30a:64: error: invalid type argument of ‘unary *’
sketch_may30a.cpp: In function ‘void funcD2()’:
sketch_may30a:67: error: invalid type argument of ‘unary *’

Basically I just want to sent this PWM signal to the 4 controller to check if my board is ok, since I had some problem in controlling and receiving counts from the board/motors.
I’m using the same code I have on another file, and it compiles…

perhaps remove the inline comment in the #define

#define NO_PORTB_PINCHANGES 
#include <PinChangeInt.h>

preprocessor might replace NO_PORTB_PINCHANGES with that comment wherever it appears in the include file.
Without comment, preprocessor will replace NO_PORTB_PINCHANGES with nothing ( i.e. remove it)
If it’s just used for an #ifdef, this hint won’t help, however.

Edit: in general, comments should be ignored after a #define, but I don’t have the IDE active right now…

I don't have my Arduino IDE here so I can't reproduce the error.

However, I'd check first to see what digitalReadFast is. I'll bet you it's a macro that uses the "*" operator somewhere. Perhaps you are using the wrong version? Passing in the wrong argument? Or maybe those include files need to be in a different order?

Just some guesses.

#include <superSerial.h>
#include <Wire.h>
#include <digitalWriteFast.h>

#define NO_PORTB_PINCHANGES //to indicate that port b will not be used for pin change interrupts
#include <PinChangeInt.h>   



//Define pin
#define PINA1 A0
#define PINA2 A1
#define DIRA 13
#define PWMA 11

#define PINB1 A2
#define PINB2 A3
#define DIRB 12
#define PWMB 10

#define PINC1 2
#define PINC2 3
#define DIRC 8
#define PWMC 9

#define PIND1 4
#define PIND2 5
#define DIRD 7
#define PWMD 6

//Global variable
float beta;
float Direction[4]={1,1,1,1};

//Encoder Positions
double countA = 0;
double countB = 0;
double countC = 0;
double countD = 0;


//PIN A                     
void funcA1(){
  PCintPort::pinState!=digitalReadFast(PINA2)?countA++:countA--;
}
void funcA2(){
  PCintPort::pinState!=digitalReadFast(PINA1)?countA--:countA++;
}
//PIN B
void funcB1(){
  PCintPort::pinState!=digitalReadFast(PINB2)?countB++:countB--;
}
void funcB2(){
  PCintPort::pinState!=digitalReadFast(PINB1)?countB--:countB++;
}
//PIN C
void funcC1(){
  PCintPort::pinState!=digitalReadFast(PINC2)?countC++:countC--;
}
void funcC2(){
  PCintPort::pinState!=digitalReadFast(PINC1)?countC--:countC++;
}
//PIN D
void funcD1(){
  PCintPort::pinState!=digitalReadFast(PIND2)?countD++:countD--;
}
void funcD2(){
  PCintPort::pinState!=digitalReadFast(PIND1)?countD--:countD++;
}

                     
void setup(){
Serial.begin(115200);
/*WHAT DOES HIGH LOW INPUT MEAN??*/
pinMode(PINA1, INPUT); digitalWrite(PINA1, HIGH);
PCintPort::attachInterrupt(PINA1, &funcA1, CHANGE);  
pinMode(PINA2, INPUT); digitalWrite(PINA2, HIGH);
PCintPort::attachInterrupt(PINA2, &funcA2, CHANGE);
pinMode(DIRA,OUTPUT); digitalWrite(DIRA,LOW);
pinMode(PWMA,OUTPUT); digitalWrite(PWMA,LOW);
  
pinMode(PINB1, INPUT); digitalWrite(PINB1, HIGH);
PCintPort::attachInterrupt(PINB1, &funcB1, CHANGE);  
pinMode(PINB2, INPUT); digitalWrite(PINB2, HIGH);
PCintPort::attachInterrupt(PINB2, &funcB2, CHANGE);
pinMode(DIRB,OUTPUT); digitalWrite(DIRB,LOW);
pinMode(PWMB,OUTPUT); digitalWrite(PWMB,LOW);
  
pinMode(PINC1, INPUT); digitalWrite(PINC1, HIGH);
PCintPort::attachInterrupt(PINC1, &funcC1, CHANGE);  
pinMode(PINC2, INPUT); digitalWrite(PINC2, HIGH);
PCintPort::attachInterrupt(PINC2, &funcC2, CHANGE);
pinMode(DIRC,OUTPUT); digitalWrite(DIRC,LOW);
pinMode(PWMC,OUTPUT); digitalWrite(PWMC,LOW);
  
pinMode(PIND1, INPUT); digitalWrite(PIND1, HIGH);
PCintPort::attachInterrupt(PIND1, &funcD1, CHANGE);  
pinMode(PIND2, INPUT); digitalWrite(PIND2, HIGH);
PCintPort::attachInterrupt(PIND2, &funcD2, CHANGE);
pinMode(DIRD,OUTPUT); digitalWrite(DIRD,LOW);
pinMode(PWMD,OUTPUT); digitalWrite(PWMD,LOW);

//used to compute speed//


}

void loop(){
  Serial.println("beta,in radians please");
  beta = sSerial.readFloat();
  analogWrite(PWMA, 150); 
  analogWrite(DIRA, HIGH);
  //analogWrite(PWMB, 150);
  //analogWrite(DIRB, HIGH);
  //analogWrite(PWMD, 150);
  //analogWrite(DIRD, HIGH);
  //analogWrite(PWMC, );
  //analogWrite(DIRC, Direction[3]);
  delay(6000);
  analogWrite(PWMA, LOW); 
  analogWrite(DIRA, LOW);
  //analogWrite(PWMB, LOW);
  //analogWrite(DIRB, LOW);
  //analogWrite(PWMD, LOW);
  //analogWrite(DIRD, LOW);
  Serial.println(countA);
  //Serial.println(countB);
  //Serial.println(countC);
}

That’s even stranger:this version… basically the same… compiles. (Even uncommenting all the lines of code.)