hi all,
i want to make a home made fire-panel, with the “brains” of the arduino,
all the buttons, incomming alarms, sound evac controll, phone dialer, displays, led’s, relay’s, etc etc. are connected with 2/maybe 3 arduino boards.
i have bought 3 VFD (vacuum fluorescent display) display’s model nr: NA202MD13AA from futaba. they are nice, but cost a lot of power…
now i downloaded the “primevfd” library here from the arduino.cc web, but on the compiling proces there was an error.
this error is not produced by me, because it is a sample code witch was included in this “primevfd” packedge.
under here i have added the code, the error, and the error in the prime.h script ( wich the compiling error says where the error is )
i have also made 2 screenshots of it so you can ether read or look at the screenshots.
http://www.secretplay.de/anonymous0/index.html
HELLO WORLD! sample from prime vfd with arduino 1.5.1r2:
// include the library code:
#include <PrimeVfd.h>
// initialize the library with the numbers of the interface pins
PrimeVfd vfd(PrimeVfd::PIN_CONFIG_PORT_D_OPTION_1);
void setup() {
// start the library/displaying to the vfd
vfd.begin();
// Print a message to the VFD.
vfd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
vfd.setCursor(0, 1);
// print the number of seconds since reset:
vfd.print(millis()/1000);
}
ERROR CODE AFTER TRYING TO COMPILE:
In file included from HelloWorld.pde:33:
C:\Users\Eddie\Documents\Arduino\libraries\PrimeVfd/PrimeVfd.h:80: error: conflicting return type specified for 'virtual void PrimeVfd::write(uint8_t)'
C:\Users\Eddie\Desktop\arduino\arduino 1.5.1\arduino-1.5.1r2\hardware\arduino\avr\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
PRIME.H file where the error exist, rule 80 lined ( ===—=== ), it is where the error is :
#ifndef PRIME_VFD_H
#define PRIME_VFD_H
// #include <inttypes.h>
// #include <avr/pgmspace.h> // Allows storing of data in program memory, used for charater bitmaps.
// #include "Print.h"
#include "Arduino.h"
// API is designed to be identical to the standard LiquidCrystal library.
// The only exception are:
//
// * The initalization (constructor and begin method) are different since
// the VFD has a different number of pins and the display dimensions are fixed.
// * We don't support the command() method to simplify implementation.
//
// All other HD44780 behaviors and idiosyncrasies are mimicked.
class PrimeVfd : public Print {
public:
enum PinConfig
{
// See the implementation of selectRegisterPinsForConfig() for how these values are used.
// On the display, the pins are:
//
// 2/TP2 - +5v
// 4/TP4 - data
// 6/TP6 - clock
// 8/TP8 - latch (simplified: low = blanks output, low->high = latch data, high display latched data)
// 10/TP10 - gnd
PIN_CONFIG_PORT_D_OPTION_1, // Port D/Arduino pins 2(data), 3(clock), 4(latch).
PIN_CONFIG_PORT_D_OPTION_2, // Port D/Arduino pins 2(data), 3(clock), 5(latch).
PIN_CONFIG_PORT_D_OPTION_3, // Port D/Arduino pins 2(data), 3(clock), 6(latch).
PIN_CONFIG_PORT_D_OPTION_4, // Port D/Arduino pins 2(data), 3(clock), 7(latch).
// When using multiple displays, Port B options can not be used at the same time.
PIN_CONFIG_PORT_B_OPTION_1,
// Option 1 uses SS (latch), SCK (clock) and MOSI (data) of Arduino Uno, etc.
PIN_CONFIG_ARDUINO_SPI_PINS = PIN_CONFIG_PORT_B_OPTION_1,
PIN_CONFIG_PORT_B_OPTION_2,
// Option 2 uses SS (latch), SCK (clock) and MOSI (data) of Arduino Mega, Teensy, etc.
PIN_CONFIG_ARDUINO_MEGA_SPI_PINS = PIN_CONFIG_PORT_B_OPTION_2,
NUM_PIN_CONFIGS
};
PrimeVfd(PinConfig pinConfig);
~PrimeVfd();
void begin();
void clear();
void home();
void noDisplay();
void display();
void noBlink();
void blink();
void noCursor();
void cursor();
void scrollDisplayLeft();
void scrollDisplayRight();
void leftToRight();
void rightToLeft();
void autoscroll();
void noAutoscroll();
void createChar(uint8_t characterIndex, uint8_t pixels[] /* 8 bytes, 1 for each row */);
void setCursor(uint8_t column, uint8_t row);
===---===---=== virtual void write(uint8_t character); ===---===---===
// command() not implemented. See note above.
//void command(uint8_t commandCode);
// Do not call this directly , bad things will happen.
// It is a private method made public so the interrupt
// handler can get at it.
static void handleInterruptPrivate();
private:
enum Flag
{
FLAG_BEGIN_HAS_BEEN_CALLED,
FLAG_DISPLAY_ON,
FLAG_CURSOR_ON,
FLAG_BLINK_ON,
CURSOR_MOVE_INCREMENT,
DISPLAY_SHIFT_ON,
NUM_FLAGS
};
static const uint8_t CHARACTER_PIXEL_WIDTH = 5;
static const uint8_t CHARACTER_PIXEL_PRETEND_HEIGHT = 8;
static const uint8_t CHARACTER_PIXEL_ACTUAL_HEIGHT = 7;
static const uint8_t DISPLAY_NUM_COLUMNS = 20;
static const uint8_t DISPLAY_NUM_ROWS = 2;
static const uint8_t FIRST_CHARACTER_IN_ROM = 30;
static const uint8_t LAST_CHARACTER_IN_ROM = 127;
static const uint8_t NUM_ROM_CHARACTERS = LAST_CHARACTER_IN_ROM + 1 - FIRST_CHARACTER_IN_ROM;
static const uint8_t NUM_CUSTOM_CHARACTERS = 8;
static const uint16_t CURSOR_BLINK_INTERRUPT_ON_COUNT = 1000; // 1/2 second.
static const uint16_t CURSOR_BLINK_INTERRUPT_LOOP_COUNT = 2000; // 1 second.
static const uint8_t BLINK_CHARACTER = 30;
static const uint8_t CURSOR_CHARACTER = 31;
// For 500 us interval (100Hz) refresh and clock of 16MHz, prescalar of /16,
// We get a remainder of 125, or start TCNT of (256-125).
static const uint8_t TIMER_START_COUNT = (256-125);
static const prog_uint8_t _characterSet[NUM_ROM_CHARACTERS][CHARACTER_PIXEL_WIDTH] PROGMEM;
volatile uint8_t *_port;
volatile uint8_t *_ddr;
uint8_t _dataPinMask;
uint8_t _clockPinMask;
uint8_t _latchPinMask;
uint8_t _flags;
uint8_t _addressCounter;
int8_t _displayOffset;
// Linked list of all PrimeVfd instances, in theory to allow multiple displays
// at the same time. Mutliple displays is untested.
static bool _haveMultipleInstances;
static bool _inInterruptHandler;
static uint16_t _blinkInterruptCount;
static PrimeVfd *_firstInstance;
PrimeVfd *_nextInstance;
uint8_t _currentUpdateColumn;
// These large arrays are at the bottom of the class member variables
// in case large address offsets are expensive.
uint8_t _displayData[80]; // Mimics layout of LCD module RAM.
uint8_t _customCharacterSet[NUM_CUSTOM_CHARACTERS][CHARACTER_PIXEL_WIDTH];
inline void setFlag(Flag flag) { _flags |= (1<<flag); }
inline void clearFlag(Flag flag) { _flags &= ~(1<<flag); }
inline bool getFlag(Flag flag) { return (_flags & (1<<flag)) ? true : false; }
void selectRegisterPinsForConfig(PinConfig pinConfig);
void setupPins();
void restorePins();
void blankDisplay();
void displayUpdate();
void clockCharacter(uint8_t character);
void clockCustomCharacter(uint8_t character);
void clockColumnSelect(uint8_t column);
uint8_t getCursorCharacter(uint8_t originalCharacter);
};
#endif // PRIME_VFD_H
i am not good at programming c / c++
and i am a beginner of the arduino programming ( its quit the same as c / c++ i have heard… )
if someone could help me by :
editing the primevfd.h and could publish it to the www so i could download it
or send me an answer below here,
i will ohnestly be verry greatful and thankfully.
i hope you could read this all becouse my english is not that good
thanx all !!!