Go Down

Topic: piccolo problema con libreria autocostruita (Read 312 times) previous topic - next topic

pdor90

rieccomi qui a rompervi i maroni con una delle kie domande da niubbo:
ho fatto la mia prima libreria seguendo il tutorial presente nella playground. è una libreria che mi emette in BCD su 4 pin di arduino un numero . per poter comandare un display a 7 segmenti tramite un cd4511. e una volta completata questa parte implemtero anche una seconda parte per un multiplexing con un secondo cd4511 per selezionare quale dei 4 display che userò nel mio progetto dovrà emettere quel numero.

ecco il mio problema quando inserisco la librearia e vado a compilare il progetto mi esce questo errore:


o: In function `__static_initialization_and_destruction_0':
C:\Users\arduino\AppData\Local\Temp\build6019084255387953051.tmp/_7segex.cpp:5: undefined reference to `Seg7::Seg7(int, int, int, int)'

ecco il file .ccp
Code: [Select]

#include "WProgram.h"
#include "Seg7.h"

Seg7::Seg7(int pinA,int pinB,int pinC,int pinD)
{
 pinMode(pinA, OUTPUT);
 pinMode(pinB, OUTPUT);
 pinMode(pinC, OUTPUT);
 pinMode(pinD, OUTPUT);
 _pinA = pinA;
 _pinB = pinB;
 _pinC = pinC;
 _pinD = pinD;
}

void Seg7::scrivi(int num)
{
switch (num){
 case 0:
  digitalWrite(_pinA, LOW);
  digitalWrite(_pinB, LOW);
  digitalWrite(_pinC, LOW);
  digitalWrite(_pinD, LOW);
  break;
case 1:
  digitalWrite(_pinA, HIGH);
  digitalWrite(_pinB, LOW);
  digitalWrite(_pinC, LOW);
  digitalWrite(_pinD, LOW);
  break;
case 2:
  digitalWrite(_pinA, LOW);
  digitalWrite(_pinB, HIGH);
  digitalWrite(_pinC, LOW);
  digitalWrite(_pinD, LOW);
  break;
case 3:
  digitalWrite(_pinA, HIGH);
  digitalWrite(_pinB, HIGH);
  digitalWrite(_pinC, LOW);
  digitalWrite(_pinD, LOW);
  break;
case 4:
  digitalWrite(_pinA, LOW);
  digitalWrite(_pinB, LOW);
  digitalWrite(_pinC, HIGH);
  digitalWrite(_pinD, LOW);
  break;
case 5:
  digitalWrite(_pinA, HIGH);
  digitalWrite(_pinB, LOW);
  digitalWrite(_pinC, HIGH);
  digitalWrite(_pinD, LOW);
  break;
case 6:
  digitalWrite(_pinA, LOW);
  digitalWrite(_pinB, HIGH);
  digitalWrite(_pinC, HIGH);
  digitalWrite(_pinD, LOW);
case 7:
  digitalWrite(_pinA, HIGH);
  digitalWrite(_pinB, HIGH);
  digitalWrite(_pinC, HIGH);
  digitalWrite(_pinD, LOW);
case 8:
  digitalWrite(_pinA, LOW);
  digitalWrite(_pinB, LOW);
  digitalWrite(_pinC, LOW);
  digitalWrite(_pinD, HIGH);
  break;
case 9:
  digitalWrite(_pinA, HIGH);
  digitalWrite(_pinB, LOW);
  digitalWrite(_pinC, LOW);
  digitalWrite(_pinD, HIGH);
  break;
}
 
}




e il file .h
Code: [Select]


#ifndef Seg7_h
#define Seg7_h

#include "WProgram.h"

class Seg7
{
 public:
   Seg7(int pinA,int pinB,int pinC,int pinD);
   void scrivi(int num);
 private:
   int _pinA;
   int _pinB;
   int _pinC;
   int _pinD;
};

#endif



non riesco a trovare il problema penso di aver seguito quello che dice nel tutorial

potete aiutarmi?

pdor90

il problema sembra risolto :) ho rirpovato a riscrivere tutta la libreria da capo e funziona. meglio così ;D

Go Up