Go Down

Topic: Nuova libreria 74HC595 per controllo display LCD ed uscite digitali (Read 10761 times) previous topic - next topic

Etemenanki

Se non ricordo male, sulle board gestite da SMF un mod, pur avendo autorizzazioni inferiori a quelle degli admin, puo (dovrebbe poter) comunque rinominare, cancellare, spostare unire o dividere yopics, e potergli assegnare la classe "sticky" ... ovviamente dipende se i permessi per il gruppo mods sono di default ;)  

Anche in caso contrario sarebbe comunque sufficente, prima di spostarlo in megatopic, se lo decidete, chiedere agli utenti di cancellare i post che non c'entrano ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

leo72


Michele Menniti


Posso cancellare post, certamente.


Quindi, se e quando si deciderà che questo Topic si può spostare, potrai fare pulizia direttamente ;) certo se li facciamo diventare centinaia giustamente ti scassi i cartoni, speriamo di aver finito, va! :)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Gono

Salve a tutti.
Sono molto interessato a questa libreria e faccio i complimenti all'ideatore  :D
Ho scaricato la versione 1.01 da qui e per provarla ho utilizzato lo sketch di esempio:
Code: [Select]

#include <HC595.h>

hc595 My595(12,11,13,2); // latch,clock,data,number of 74hc595
unsigned char Leds;

void setup()
{
Leds=0;
  My595.DisplayReset(LCD595_BASIC_DISPLAY_INIT | LCD595_MORELINES ,0); // multiline display
My595.SetCursor(0,0,1,0); // cursor at 0,0, display type 1 on first 595
My595.DisplayWrite("Setup is OK...",0); // Write string
delay(1500); // waiting for...
My595.DisplayClean(0); // clear display

}

void loop()
{
  My595.SetCursor(Leds%13,Leds%2,1,0);
  My595.DisplayChar(32+Leds%96,0);
  Leds++;
  delay(800);
}


Ma durante la compilazione sono usciti una marea di errori:

Code: [Select]

/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:3: error: 'hc595' has not been declared
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:3: error: ISO C++ forbids declaration of 'hc595' with no type
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'int hc595(unsigned char, unsigned char, unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:5: error: 'latchPin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:6: error: 'clockPin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:7: error: 'dataPin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:8: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:8: error: 'malloc' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:10: error: 'OUTPUT' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:10: error: 'pinMode' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:13: error: 'num_595' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:16: error: expected constructor, destructor, or type conversion before '::' token
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:22: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void PulseE(unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:24: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:24: error: 'LOW' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:24: error: 'bitWrite' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:25: error: 'Send595' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:26: error: 'delayMicroseconds' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:27: error: 'HIGH' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:35: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void Send595()':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:38: error: 'latchPin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:38: error: 'LOW' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:38: error: 'digitalWrite' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:39: error: 'num_595' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:39: error: 'dataPin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:39: error: 'clockPin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:39: error: 'MSBFIRST' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:39: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:39: error: 'shiftOut' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:40: error: 'HIGH' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:48: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void Send595Pin(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:50: error: 'Set595Pin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:55: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void Set595Pin(bool, bool, bool, bool, bool, bool, bool, bool, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:57: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:57: error: 'bitWrite' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:67: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void Set595Pin(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:69: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:72: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void Lcd_SetFreePin(unsigned char, bool, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:74: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:74: error: 'bitWrite' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:79: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void DisplayReset(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:81: error: 'LCD595_BASIC_DISPLAY_INIT' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:81: error: 'LCD595_USEFONT_5X10' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:81: error: 'LCD595_MORELINES' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:83: error: 'delayMicroseconds' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:86: error: 'SetLcdPin' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:101: error: 'SendLcdCommand' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:102: error: 'LCD595_DISPLAY_ON' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:103: error: 'LCD595_DISPLAY_CLEAR' was not declared in this scope
SO Linux - Ubuntu 12.04 - Arduino Uno R3 - IDE 1.0.5

Gono

Continuo in questo altro post perchè avevo finito i caratteri:
Code: [Select]

/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:112: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void DisplayWrite(const char*, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:114: error: 'strlen' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:116: error: 'DisplayChar' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:120: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void DisplayChar(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:123: error: 'HIGH' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:123: error: 'SetLcdRS' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:124: error: 'SetHLcd' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:126: error: 'SetLLcd' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:128: error: 'delayMicroseconds' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:131: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void SetLcdPin(bool, bool, bool, bool, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:133: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:133: error: 'bitWrite' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:141: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void SetCursor(unsigned char, unsigned char, unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:149: error: 'SendLcdCommand' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:153: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void SetDDRAM_Address(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:156: error: 'SendLcdCommand' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:159: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void CreateChar(unsigned char, unsigned char*, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:162: error: 'SendLcdCommand' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:167: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void SendLcdCommand(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:169: error: 'LOW' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:169: error: 'SetLcdRS' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:170: error: 'SetHLcd' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:172: error: 'SetLLcd' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:174: error: 'delayMicroseconds' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:175: error: 'LCD595_DISPLAY_CLEAR' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:175: error: 'delay' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:178: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void SetLcdRS(bool, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:180: error: 'Buffer' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:180: error: 'bitWrite' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:184: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void SetHLcd(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:186: error: 'bitRead' was not declared in this scope
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: At global scope:
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:189: error: 'hc595' is not a class or namespace
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp: In function 'void SetLLcd(unsigned char, unsigned char)':
/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:191: error: 'bitRead' was not declared in this scope


Volevo sapere se anche a qualcun altro era successa una cosa simile.
Vi ringrazio per la disponibilità.
SO Linux - Ubuntu 12.04 - Arduino Uno R3 - IDE 1.0.5

Testato

#35
Sep 28, 2013, 12:12 pm Last Edit: Sep 28, 2013, 12:16 pm by Testato Reason: 1
ho provato a compilare anche io e non ci sono errori.
vedo che hai ubuntu, io ho rpovato su win7-64
l'ide arduinica l'hai installata manualmente ? prova a prenderla dal repository, magari linuxiani piu' esperti possono fare una controverifica, attualmente non ho macchine virtuali installate

Quote

Dimensione del file binario dello sketch: 3.360 bytes (su un massimo di 32.256 bytes)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72

Ho provato su Arch, con IDE 1.0.5 e toolchain Atmel.
Anche a me non compila ma si limita a questo errore:

Code: [Select]
/home/leo/sketchbook/libraries/HC595/HC595.cpp:1:19: fatal error: hc595.h: No such file or directory
compilation terminated.


Il problema nasce dalla riga indicata. Lì c'è questo codice:
Code: [Select]
#include <hc595.h>

Ma il file si chiama HC595.h, e giustamente il compilatore non trova il file. Perché su Linux i nomi dei file sono sensibili alle maiuscole e hc595.h non è lo stesso file di HC595.h

Prova quindi ad aprire il file HC595/HC595.cpp ed a cambiare quell'include mettendo
Code: [Select]
#include <HC595.h>


smania2000

Domanda banale: ma l'hai copiata la libreria fra quelle di Arduino, ossia nella directory Libraries? Dagli errori sembra che non sia riuscito ad includere la libreria, in particolare quando ti dice "/home/utente/arduino-1.0.5/libraries/HC595/HC595.cpp:112: error: 'hc595' is not a class or namespace" significa che non conosce la classa hc595, motivo per cui desumo che l'inclusione non è andata a buon fine. Controlla per favore che la libreria sia insieme a tutte le altre, forse ti dico una banalità ma non so quali siano le tue conoscenze e quella è la cosa più probabile che mi viene in mente.

Gono

Intanto vi ringrazio a tutti per le celeri risposte.
Premetto subito che adesso funziona anche a me, ma mi dilungherò a raccontare come ho fatto nel caso qualcun altro avesse lo stesso problema.
La mia versione 1.0.5 non è quella dei repository.
Inizialmente ho fatto una prova con la versione 1.0 dei repository e trovato lo stesso errore di Leo72, ovvero problemi di maiuscole/minuscole.
Ho quindi creato una copia del file "HC595.h" e l'ho chiamata "hc595.h" e magicamente la versione 1.0 non dava più errori!
La versione 1.0.5 continuava però a dare quella sfilza di errori!
Ho banalmente risolto riavviando il computer :D
SO Linux - Ubuntu 12.04 - Arduino Uno R3 - IDE 1.0.5

Testato

quindi il case sensitive di linux crea librerie compatibili solo su windows, altro punto a favore per il vecchio Bill  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Gono

SO Linux - Ubuntu 12.04 - Arduino Uno R3 - IDE 1.0.5

smania2000

...ok, ottimo, al più presto modifico il nome della libreria in minuscolo per evitare problemi agli utenti linux.

Grazie.

leo72

Se Windows non sa distinguere fra HC595.h e hc595.h non è un prego ma un difetto  ;)

@Gono:
io ho compilato con l'IDE 1.0.5 senza problemi.
Se tu hai fatto la copia del file ad IDE aperto, è l'IDE che non ha ricaricato il nuovo file e continuava ad avere in memoria quello vecchio. Dovevi chiedere e riaprire l'IDE, non serviva riavviare il sistema  :smiley-sweat:

Gono


io ho compilato con l'IDE 1.0.5 senza problemi.
Se tu hai fatto la copia del file ad IDE aperto, è l'IDE che non ha ricaricato il nuovo file e continuava ad avere in memoria quello vecchio. Dovevi chiedere e riaprire l'IDE, non serviva riavviare il sistema  :smiley-sweat:


Ti posso assicurare di aver chiuso l'IDE 1.0.5 più di una volta con esito negativo. Ho dovuto proprio riavviare il sistema! Se devo essere sincero anche a me pare strana la cosa.
SO Linux - Ubuntu 12.04 - Arduino Uno R3 - IDE 1.0.5

leo72

NOn so che dirti. Probabilmente c'era qualche altro problema perché, come vedi, il messaggio di errore che ho avuto io era di 1 unica riga e completamente diverso dal tuo. A te diceva che non riconosceva hc595 come classe o namespace. Ma avevi editato il file, per caso, nel tentativo di sistemare il problema?

Go Up