Guten Abend,
nun sitz ich hier seit Stunden und suche nach Fehlern und plötzlich stelle ich fest, dass es ein generelles Problem zwischen den beiden Libs gibt.
Irgendwie verträgt sich dort was nicht.
Soblad ich eine funktion von SimpleDMX öffne, kann VirtualWire keine Daten mehr empfangen. z.B. DmxSimple.maxChannel(6); im Setup.
Edit: Gerade gesehen. DmxSimple nutzt TIMER2, VirtualWire TIMER1. Liegt es daran? Gibt es eine Lösung dazu?
Ich verwende folgende Libs:
VirtualWire 1.6
https://github.com/kuon/arduino/tree/master/libraries/VirtualWire
DMXSimple V3
https://code.google.com/p/tinkerit/downloads/detail?name=DmxSimple_v3.zip&can=2&q=
Das Sketch ist das reguläre von Virtual Wire:
// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include <DmxSimple.h>
#include <VirtualWire.h>
void setup()
{
DmxSimple.maxChannel(6);
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i], HEX);
Serial.print(" ");
}
Serial.println("");
digitalWrite(13, false);
}
}