Módosítottam a kódot a következőre, és félig meddig működik, de az include rész olyan féllábú...
A kérdésem a következő lenne: Mért csak a sevensegment példányosítása után (sevensegment kijelzo) tudok, a kijelzo-n át, meghívni a kiir parancsot (kijelzo.kiir)?
Mért a void sevensegment::kiir(int szam)-ba kell deklarálni az input-output lábakat? (minden egyes meghíváskor megcsinálja, pedig elég lenne az elején (setup) egyszer megcsinálni. :\
Mit rontok el? Köszönöm a segítséget eddig is!
INO:
Kód: Egész kijelölése
#include "sevensegment.h"
void setup()
{
Serial.begin(9600);
}
void loop()
{
delay(1000);
sevensegment kijelzo(7, 9, 11, 8, 10, 6, 12, 13);
//Serial.println("1-9");
//int a;
//a = Serial.read();
kijelzo.kiir(Serial.read());
//Serial.println(a);
}
CPP:
Kód: Egész kijelölése
#include "Arduino.h"
#include "sevensegment.h"
#include "pins_arduino.h"
int f=7; int k=9; int a=11; int bf=8; int ba=10; int jf=6; int ja=12; int p=13;
sevensegment::sevensegment(int f, int k, int a, int bf, int ba, int jf, int ja, int p)
{
}
void sevensegment::kiir(int szam)
{
pinMode(f, OUTPUT);
pinMode(k, OUTPUT);
pinMode(a, OUTPUT);
pinMode(bf, OUTPUT);
pinMode(ba, OUTPUT);
pinMode(jf, OUTPUT);
pinMode(ja, OUTPUT);
pinMode(p, OUTPUT);
switch (szam) {
case 48:
digitalWrite(jf, LOW); //0
digitalWrite(ja, LOW);
digitalWrite(f, LOW);
digitalWrite(bf, LOW);
digitalWrite(k, HIGH);
digitalWrite(a, LOW);
digitalWrite(ba, LOW);
break;
case 49:
digitalWrite(jf, LOW); // 1
digitalWrite(ja, LOW);
digitalWrite(f, HIGH);
digitalWrite(bf, HIGH);
digitalWrite(k, HIGH);
digitalWrite(a, HIGH);
digitalWrite(ba, HIGH);
break;
case 50:
digitalWrite(jf, LOW); // 2
digitalWrite(ja, HIGH);
digitalWrite(f, LOW);
digitalWrite(bf, HIGH);
digitalWrite(k, LOW);
digitalWrite(a, LOW);
digitalWrite(ba, LOW);
break;
case 51:
digitalWrite(jf, LOW); // 3
digitalWrite(ja, LOW);
digitalWrite(f, LOW);
digitalWrite(bf, HIGH);
digitalWrite(k, LOW);
digitalWrite(a, LOW);
digitalWrite(ba, HIGH);
break;
case 52:
digitalWrite(jf, LOW); // 4
digitalWrite(ja, LOW);
digitalWrite(f, HIGH);
digitalWrite(bf, LOW);
digitalWrite(k, LOW);
digitalWrite(a, HIGH);
digitalWrite(ba, HIGH);
break;
case 53:
digitalWrite(jf, HIGH); // 5
digitalWrite(ja, LOW);
digitalWrite(f, LOW);
digitalWrite(bf, LOW);
digitalWrite(k, LOW);
digitalWrite(a, LOW);
digitalWrite(ba, HIGH);
break;
case 54:
digitalWrite(jf, HIGH); //6
digitalWrite(ja, LOW);
digitalWrite(f, LOW);
digitalWrite(bf, LOW);
digitalWrite(k, LOW);
digitalWrite(a, LOW);
digitalWrite(ba, LOW);
break;
case 55:
digitalWrite(jf, LOW); //7
digitalWrite(ja, LOW);
digitalWrite(f, LOW);
digitalWrite(bf, HIGH);
digitalWrite(k, HIGH);
digitalWrite(a, HIGH);
digitalWrite(ba, HIGH);
delay(500);
break;
case 56:
digitalWrite(jf, LOW); // 8
digitalWrite(ja, LOW);
digitalWrite(f, LOW);
digitalWrite(bf, LOW);
digitalWrite(k, LOW);
digitalWrite(a, LOW);
digitalWrite(ba, LOW);
delay(500);
break;
case 57:
digitalWrite(jf, LOW); // 9
digitalWrite(ja, LOW);
digitalWrite(f, LOW);
digitalWrite(bf, LOW);
digitalWrite(k, LOW);
digitalWrite(a, LOW);
digitalWrite(ba, HIGH);
delay(500);
break;
default:
//Serial.println("default");
break;
}
}
h:
Kód: Egész kijelölése
#ifndef sevensegment_h
#define sevensegment_h
#include "Arduino.h"
class sevensegment
{
private:
public:
sevensegment(int f, int k, int a, int bf, int ba, int jf, int ja, int p);
void kiir(int szam);
};
#endif