Thanks lloyddean for your reply. Yes, I'm 11, but I don't post that here because I want people to take me seriously. For the code, I got a TON of error messages. It said when I take out all of the shifter.'s, that all of the names with out shifter. are "not declared in this scope". Here is my current .cpp file.
#include "Arduino.h"
#include "Pineapple.h"
#include "Shifter.h"
uint8_t Pineapple::pins(int a, int b, int c, int d, int e, int f, int g, int dp, boolean common) {
_a=a;
_b=b;
_c=c;
_d=d;
_e=e;
_f=f;
_g=g;
_dp=dp;
_common=common;
segmentPins[0] = _dp;
segmentPins[1] = _g;
segmentPins[2] = _f;
segmentPins[3] = _e;
segmentPins[4] = _d;
segmentPins[5] = _c;
segmentPins[6] = _b;
segmentPins[7] = _a;
for(int i=0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void Pineapple::write(int number) {
boolean isBitSet;
numeral[0] = B11111100; // 0
numeral[1] = B01100000; // 1
numeral[2] = B11011010; // 2
numeral[3] = B11110010; // 3
numeral[4] = B01100110; // 4
numeral[5] = B10110110; // 5
numeral[6] = B10111110; // 6
numeral[7] = B11100000; // 7
numeral[8] = B11111110; // 8
numeral[9] = B11100110; // 9
if (_common == HIGH) {
for(int segment=1; segment < 8; segment++) {
if(number < 0 || number > 9) {
isBitSet = 0;
}else{
isBitSet = bitRead(numeral[number], segment);
}
isBitSet = ! isBitSet;
setPin(segmentPins[segment], isBitSet);
write();
}
}else{
for(int segment=1; segment < 8; segment++) {
if(number < 0 || number > 9) {
isBitSet = 0;
}else{
isBitSet = bitRead(numeral[number], segment);
}
setPin(segmentPins[segment], isBitSet);
write();
}
}
if (_number == '.' && _common == HIGH) {
setPin(_dp, LOW);
write();
}
if (_number == '.' && _common == LOW) {
setPin(_dp, HIGH);
write();
}
if (_common == HIGH) {
setPin(_dp, HIGH);
write();
}
if (_common == LOW) {
setPin(_dp, LOW);
write();
}
}