Korrigierte "VirtualWire" Library für Attiny84 / 85

Gast #4171846
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.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren