Go Down

Topic: piccolo problema con libreria autocostruita (Read 341 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy