Forum: Projekte & Code Korrigierte "VirtualWire" Library für Attiny84 / 85


von Christian J. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

da der Autor den Code nicht mehr weiter pflegt pinne ich es hier mal 
rein. In der beliebten VirtualWire ist ein Fehler was den Attiny84 in 
die Botanik schickt. Die Lösung habe ich in irgendeinem Forum tief 
vergraben gefunden und zitiere sie daher hier

Quelle: GPL_v2 Lizenz
http://www.airspayce.com/mikem/arduino/VirtualWire/index.html

In der VitualWire.cpp muss direkt nach dem #include .....

#undef TIMER_VECTOR
#ifdef _AVR_ATtiny85_
# define TIMER_VECTOR TIM0_COMPA_vect
#elif defined(_AVR_ATtiny84_) || defined(_AVR_ATtiny24_) || 
defined(_AVR_ATtiny44_)
# define TIMER_VECTOR  TIM1_COMPA_vect
#else // Assume Arduino Uno (328p or similar)
# define TIMER_VECTOR TIMER1_COMPA_vect
#endif // _AVR_ATtiny85_

später im Code muss dann ca ab zeile 580

// This is the interrupt service routine called when timer1 overflows
// Its job is to output the next bit from the transmitter (every 8 
calls)
// and to call the PLL code if the receiver is enabled
//ISR(SIG_OUTPUT_COMPARE1A)
#if defined (ARDUINO) // Arduino specific

SIGNAL(TIMER_VECTOR)  // FIXED !!!

stehen, da der Autor TIM1_COMPA und TIMER1_COMPA verwechselt hat. Nettes 
Beispiel dafür, dass viele Codes im Netz gar nicht für alle Anwendungen 
getestet wurden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.