For my current (and extremely incomplete) project, I am attempting to use both the PS2Keyboard and TVOut libraries.
PS2Keyboard: Arduino Playground - PS2Keyboard
TVOut: Arduino Playground - TVout
Put simply, I checked around for a solution to my problem (i.e. every single function in the PS2Keyboard library being defined twice) and found this on StackOverflow:
...But cross-referencing the solution with my program and libraries lead me to believe that something else is at play. Here's the beginning of each file in my sketch folder:
MURICANKeyboardToTV
#include <PS2Keyboard.h>
const int DataPin = 8;
const int IRQpin = 3;
PS2Keyboard keyboard;
#include <TVout.h>
#include <fontALL.h>
#include "TVOlogo.h"
TVout TV;
//Nothing relevant beyond this point.
void setup() {
PS2Keyboard.cpp
#include "PS2Keyboard.h"
#define BUFFER_SIZE 45
static volatile uint8_t buffer[BUFFER_SIZE];
static volatile uint8_t head, tail;
static uint8_t DataPin;
static uint8_t CharBuffer=0;
static uint8_t UTF8next=0;
static const PS2Keymap_t *keymap=NULL;
PS2Keyboard.h
#ifndef PS2Keyboard_h
#define PS2Keyboard_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h" // for attachInterrupt, FALLING
#else
#include "WProgram.h"
#endif
#include "utility/int_pins.h"
//And then tons of stuff is #define'd.
TVOlogo.cpp
#include "TVOlogo.h"
PROGMEM const unsigned char TVOlogo[] = {
//Figgis fiddus!
TVOlogo.h
#include <avr/pgmspace.h>
#ifndef TVOLOGO_H
#define TVOLOGO_H
extern const unsigned char TVOlogo[];
#endif
//And that's the end of the file. No, really.
Everything seems to be in order, but then again it might just be the case that I need "fresh eyes" to look at it. Suggestions, ideas, etc?
Sidenote: I'm hoping to turn this into a notepad program, with a PS2 keyboard as input, a TV as output, and an SD card as the storage medium. So far, all three components work perfectly by themselves (or at least I've had complete success with the demo programs for each...).