Foolishly I've been trying to write a multiplexer library but had problems when compiling. The original, working sketch:
int count;
int pinval;int cpin1=6;
int cpin2=7;
int cpin3=8;
int cpin4=9;int a;
int b;
int c;
int d;void setup(){
Serial.begin(9600);
pinMode(cpin1, OUTPUT);
pinMode(cpin2, OUTPUT);
pinMode(cpin3, OUTPUT);
pinMode(cpin4, OUTPUT);
}
void loop(){
muxi();
}
void muxi(){
for(count=0; count<=15; count++){
a = count & 0x01;
b = (count>>1) & 0x01;
c = (count>>2) & 0x01;
d = (count>>3) & 0x01;
digitalWrite(cpin1, a);
digitalWrite(cpin2, b);
digitalWrite(cpin3, c);
digitalWrite(cpin4, d);
int pinval=analogRead(0);
Serial.print(count);
Serial.print("-");
Serial.println(pinval);
delay(300);
}
}
Then created a class from it. The header file:
#ifndef Multiplexer_h
#define Multiplexer_h
#include "WProgram.h"
class Multiplexer
{
public:
Multiplexer(int cp1,int cp2,int cp3,int cp4, int apin); // apin being the analog pin
void muxi();
private:
int _val; //value from analog input
int pval1;
int pval2;
int pval3;
int pval4;
int count;
};
#endif
... and the source file:
#include "multiplexer.h"
#include "WProgram.h"
Multiplexer::Multiplexer(int cp1,int cp2,int cp3,int cp4,int apin){
pinMode(cp1, OUTPUT);
pinMode(cp2, OUTPUT);
pinMode(cp3, OUTPUT);
pinMode(cp4, OUTPUT);
}
void Multiplexer::Muxi(){
for(int count=0; int count<=15; int count++){
pval1 = count & 0x01;
pval2 = (count>>1) & 0x01;
pval3 = (count>>2) & 0x01;
pval4 = (count>>3) & 0x01;
digitalWrite(cpin1, pval1);
digitalWrite(cpin2, pval2);
digitalWrite(cpin3, pval3);
digitalWrite(cpin4, pval4);
int val=analogRead(apin);
Serial.print(count);
Serial.print("-");
Serial.println(val);
delay(300);
}
}
Finally I tried to import the library into a new sketch:
#include <multiplexer.h>
Multiplexer multiplexer(6,7,8,9,0);
void setup(){
Serial.begin(9600);
}
void loop(){
multiplexer.muxi();
}
...and got the following error message:
/Applications/Arduino.app/Contents/Resources/Java/libraries/multiplexer/multiplexer.cpp:20: error: no 'void Multiplexer::Muxi()' member function declared in class 'Multiplexer'
Any ideas where did I go wrong? Thanks for any help in advance!