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…