Hallo zusammen! Ich bin an einem Projekt dran, bei welchem ein RFM69HW-Modul mit einem ATTiny84 geschehen soll. Im Endeffekt soll das Modul später nur dauerhaft auf seiner Frequenz senden, mehr erstmal nicht. Als Programmer für dem ATTiny84 dient ein Arduino UNO. Verdrahtung hat wunderbar geklappt und LEDs konnte ich auch blinken lassen. Es gibt bei github ja von Felix Rusu eine gute Bibliothek allgemein für das RFM69. Um das Modul dann auch in den Betrieb zu nehmen, gibt es sogar auch eine Anleitung: https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide/all Allerdings klappt der dort genannte Beispiel-Code bei mir nicht und ich habe keine Ahnung, was ich anpassen muss, damit ich das RFM-Modul über meinen ATTiny ansteuern kann. Bin im Programmieren nicht so ganz fit und hoffe, dass mir hier irgendjemand weiterhelfen kann...bin am verzweifeln... Viele Grüße und bleibt gesund! Max
Maximilian S. schrieb: > Hallo zusammen! > > Ich bin an einem Projekt dran, bei welchem ein RFM69HW-Modul mit einem > ATTiny84 geschehen soll. Im Endeffekt soll das Modul später nur > dauerhaft auf seiner Frequenz senden, mehr erstmal nicht. > > Als Programmer für dem ATTiny84 dient ein Arduino UNO. Verdrahtung hat > wunderbar geklappt und LEDs konnte ich auch blinken lassen. Es gibt bei > github ja von Felix Rusu eine gute Bibliothek allgemein für das RFM69. > Um das Modul dann auch in den Betrieb zu nehmen, gibt es sogar auch eine > Anleitung: > https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide/all Das ist für AVR's mit SPI-Hardware gedacht. Die hat der Tiny84 nicht wirklich, sondern nur USI. Da brauchst du eine neuen SPI-Treiber. > Allerdings klappt der dort genannte Beispiel-Code bei mir nicht und ich > habe keine Ahnung, was ich anpassen muss, damit ich das RFM-Modul über > meinen ATTiny ansteuern kann. Bin im Programmieren nicht so ganz fit und > hoffe, dass mir hier irgendjemand weiterhelfen kann...bin am > verzweifeln... Schlechte Karten für "neues SPI". > Viele Grüße und bleibt gesund! > > Max
Maximilian S. schrieb: > Hallo zusammen! > > Ich bin an einem Projekt dran, bei welchem ein RFM69HW-Modul mit einem > ATTiny84 geschehen soll. Im Endeffekt soll das Modul später nur > dauerhaft auf seiner Frequenz senden, mehr erstmal nicht. > > Als Programmer für dem ATTiny84 dient ein Arduino UNO. Verdrahtung hat > wunderbar geklappt und LEDs konnte ich auch blinken lassen. Es gibt bei > github ja von Felix Rusu eine gute Bibliothek allgemein für das RFM69. > Um das Modul dann auch in den Betrieb zu nehmen, gibt es sogar auch eine > Anleitung: > https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide/all Das ist für AVR's mit SPI-Hardware gedacht. Die hat der Tiny84 nicht wirklich, sondern nur USI. Da brauchst du eine neuen SPI-Treiber. > Allerdings klappt der dort genannte Beispiel-Code bei mir nicht und ich > habe keine Ahnung, was ich anpassen muss, damit ich das RFM-Modul über > meinen ATTiny ansteuern kann. Bin im Programmieren nicht so ganz fit und > hoffe, dass mir hier irgendjemand weiterhelfen kann...bin am > verzweifeln... Schlechte Karten für "neues SPI". > Viele Grüße und bleibt gesund! > > Max Edit: Es gibt tiny84-SPI: https://github.com/JChristensen/tinySPI muß aber noch mit dem Rest zusammengebracht werden Ich hoffen du hast LA oder Scope.
:
Bearbeitet durch User
Schaltplan und hier der Code: // RFM69HCW Example Sketch // Send serial input characters from one RFM69 node to another // Based on RFM69 library sample code by Felix Rusu // http://LowPowerLab.com/contact // Modified for RFM69HCW by Mike Grusin, 4/16 // This sketch will show you the basics of using an // RFM69HCW radio module. SparkFun's part numbers are: // 915MHz: https://www.sparkfun.com/products/12775 // 434MHz: https://www.sparkfun.com/products/12823 // See the hook-up guide for wiring instructions: // https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide // Uses the RFM69 library by Felix Rusu, LowPowerLab.com // Original library: https://www.github.com/lowpowerlab/rfm69 // SparkFun repository: https://github.com/sparkfun/RFM69HCW_Breakout // Include the RFM69 and SPI libraries: #include <RFM69.h> #include <SPI.h> // Addresses for this node. CHANGE THESE FOR EACH NODE! #define NETWORKID 0 // Must be the same for all nodes #define MYNODEID 1 // My node ID #define TONODEID 2 // Destination node ID // RFM69 frequency, uncomment the frequency of your module: #define FREQUENCY RF69_433MHZ //#define FREQUENCY RF69_915MHZ // AES encryption (or not): #define ENCRYPT true // Set to "true" to use encryption #define ENCRYPTKEY "TOPSECRETPASSWRD" // Use the same 16-byte key on all nodes // Use ACKnowledge when sending messages (or not): #define USEACK true // Request ACKs or not // Packet sent/received indicator LED (optional): #define LED 8 // LED positive pin //#define GND 8 // LED ground pin // Create a library object for our RFM69HCW module: RFM69 radio; void setup() { // Open a serial port so we can send keystrokes to the module: Serial.begin(9600); Serial.print("Node "); Serial.print(MYNODEID,DEC); Serial.println(" ready"); // Set up the indicator LED (optional): pinMode(LED,OUTPUT); digitalWrite(LED,HIGH); //pinMode(GND,OUTPUT); //digitalWrite(GND,LOW); // Initialize the RFM69HCW: // radio.setCS(10); //uncomment this if using Pro Micro radio.initialize(FREQUENCY, MYNODEID, NETWORKID); radio.setHighPower(); // Always use this for RFM69HCW // Turn on encryption if desired: if (ENCRYPT) radio.encrypt(ENCRYPTKEY); } void loop() { // Set up a "buffer" for characters that we'll send: static char sendbuffer[62]; static int sendlength = 0; // SENDING // In this section, we'll gather serial characters and // send them to the other node if we (1) get a carriage return, // or (2) the buffer is full (61 characters). // If there is any serial input, add it to the buffer: if (Serial.available() > 0) { char input = Serial.read(); if (input != '\r') // not a carriage return { sendbuffer[sendlength] = input; sendlength++; } // If the input is a carriage return, or the buffer is full: if ((input == '\r') || (sendlength == 61)) // CR or buffer full { // Send the packet! Serial.print("sending to node "); Serial.print(TONODEID, DEC); Serial.print(", message ["); for (byte i = 0; i < sendlength; i++) Serial.print(sendbuffer[i]); Serial.println("]"); // There are two ways to send packets. If you want // acknowledgements, use sendWithRetry(): if (USEACK) { if (radio.sendWithRetry(TONODEID, sendbuffer, sendlength)) Serial.println("ACK received!"); else Serial.println("no ACK received"); } // If you don't need acknowledgements, just use send(): else // don't use ACK { radio.send(TONODEID, sendbuffer, sendlength); } sendlength = 0; // reset the packet Blink(LED,10); } } // RECEIVING // In this section, we'll check with the RFM69HCW to see // if it has received any packets: if (radio.receiveDone()) // Got one! { // Print out the information: Serial.print("received from node "); Serial.print(radio.SENDERID, DEC); Serial.print(", message ["); // The actual message is contained in the DATA array, // and is DATALEN bytes in size: for (byte i = 0; i < radio.DATALEN; i++) Serial.print((char)radio.DATA[i]); // RSSI is the "Receive Signal Strength Indicator", // smaller numbers mean higher power. Serial.print("], RSSI "); Serial.println(radio.RSSI); // Send an ACK if requested. // (You don't need this code if you're not using ACKs.) if (radio.ACKRequested()) { radio.sendACK(); Serial.println("ACK sent"); } Blink(LED,10); } } void Blink(byte PIN, int DELAY_MS) // Blink an LED for a given number of ms { digitalWrite(PIN,HIGH); delay(DELAY_MS); digitalWrite(PIN,LOW); }
Wie kann man denn die Tiny SPI einbinden? einfach wieder mit include als Bibliothek? Ist es denn grundsätzlich möglich, mein Vorhaben umzusetzen? Ich bin echt über jede Hilfe dankbar!
Maximilian S. schrieb: > Wie kann man denn die Tiny SPI einbinden? einfach wieder mit include als > Bibliothek? In einfachsten Fall (Q&D) die spi.h/spi.c ins Projektverzeichnis kopieren. > Ist es denn grundsätzlich möglich, mein Vorhaben umzusetzen? Ich bin > echt über jede Hilfe dankbar! Hab mal die rfm69-Lib angeschaut, die benutzt nichts, was die tiny84-spi-Lib nicht bietet. Also erst mal compilieren und Fehlermeldungen analysieren. In der RFM69.h gibt es Konfiguration der Pins, etc. Da muß, ausgehen vom atmega328 ein Eintrag für den Tiny84 rein, also dessen SPI-Pins.
Rfm69.h:
1 | ...
|
2 | #elif defined(__AVR_ATmega32U4__)
|
3 | // Leonardo, Yun, Micro, Pro Micro, Flora, Esplora
|
4 | // 3->0, 2->1, 0->2, 1->3, 7->4
|
5 | #define digitalPinToInterrupt(p) \
|
6 | ((p) == 0 ? 2 : ((p) == 1 ? 3 : \
|
7 | ((p) == 2 ? 1 : ((p) == 3 ? 0 : \
|
8 | ((p) == 7 ? 4 : NOT_AN_INTERRUPT)))))
|
9 | //>> neu
|
10 | #elif defined(__AVR_ATtiny84__)
|
11 | // Leonardo, Yun, Micro, Pro Micro, Flora, Esplora
|
12 | // 3->0, 2->1, 0->2, 1->3, 7->4
|
13 | #define digitalPinToInterrupt(p) \
|
14 | ((p) == 0 ? 8 : NOT_AN_INTERRUPT)
|
15 | //<<neu
|
16 | #else
|
17 | // All other arduino except Due:
|
18 | // Serial Arduino, Extreme, NG, BT, Uno, Diecimila, Duemilanove,
|
19 | // Nano, Menta, Pro, Mini 04, Fio, LilyPad, Ethernet etc
|
20 | // 2->0, 3->1
|
21 | #define digitalPinToInterrupt(p) \
|
22 | ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT))
|
23 | #endif
|
24 | ...
|
25 | #elif defined(__AVR_ATmega32U4__)
|
26 | #define RF69_IRQ_PIN 7
|
27 | //>> neu
|
28 | #elif defined(__AVR_ATmega32U4__)
|
29 | #define RF69_IRQ_PIN 8 /* Int0 Pin nach Arduino Nummerierung */ |
30 | //<<< neu
|
Ohne Gewähr!
Ich habe die Änderungen vorgenommen. Wenn ich meinen Sketch überprüfe, kommen folgende Fehlermeldungen: Arduino: 1.8.12 (Windows 10), Board: "ATtiny24/44/84, ATtiny84, Internal 8 MHz" In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In member function 'void SPISettings::init_AlwaysInline(uint32_t, uint8_t, uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:16: error: 'SPE' was not declared in this scope spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) | ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:16: note: suggested alternative: 'SPH' C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:27: error: 'MSTR' was not declared in this scope spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) | ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:27: note: suggested alternative: 'PSTR' C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:65: error: 'DORD' was not declared in this scope spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) | ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:65: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::beginTransaction(SPISettings)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:203:5: error: 'SPCR' was not declared in this scope SPCR = settings.spcr; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:203:5: note: suggested alternative: 'EECR' SPCR = settings.spcr; ^~~~ EECR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:204:5: error: 'SPSR' was not declared in this scope SPSR = settings.spsr; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:204:5: note: suggested alternative: 'ACSR' SPSR = settings.spsr; ^~~~ ACSR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static uint8_t SPIClass::transfer(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:209:5: error: 'SPDR' was not declared in this scope SPDR = data; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:209:5: note: suggested alternative: 'EEDR' SPDR = data; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:14: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; // wait ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:14: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; // wait ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:25: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; // wait ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:25: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static uint16_t SPIClass::transfer16(uint16_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:11: error: 'SPCR' was not declared in this scope if (!(SPCR & _BV(DORD))) { ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:11: note: suggested alternative: 'EECR' if (!(SPCR & _BV(DORD))) { ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:22: error: 'DORD' was not declared in this scope if (!(SPCR & _BV(DORD))) { ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:22: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:224:7: error: 'SPDR' was not declared in this scope SPDR = in.msb; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:224:7: note: suggested alternative: 'EEDR' SPDR = in.msb; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:233:7: error: 'SPDR' was not declared in this scope SPDR = in.lsb; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:233:7: note: suggested alternative: 'EEDR' SPDR = in.lsb; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::transfer(void*, size_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:247:5: error: 'SPDR' was not declared in this scope SPDR = *p; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:247:5: note: suggested alternative: 'EEDR' SPDR = *p; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:14: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:14: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:25: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:25: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setBitOrder(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:31: error: 'SPCR' was not declared in this scope if (bitOrder == LSBFIRST) SPCR |= _BV(DORD); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:31: note: suggested alternative: 'EECR' if (bitOrder == LSBFIRST) SPCR |= _BV(DORD); ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:43: error: 'DORD' was not declared in this scope if (bitOrder == LSBFIRST) SPCR |= _BV(DORD); ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:43: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:10: error: 'SPCR' was not declared in this scope else SPCR &= ~(_BV(DORD)); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:10: note: suggested alternative: 'EECR' else SPCR &= ~(_BV(DORD)); ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:24: error: 'DORD' was not declared in this scope else SPCR &= ~(_BV(DORD)); ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:24: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setDataMode(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:298:5: error: 'SPCR' was not declared in this scope SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:298:5: note: suggested alternative: 'EECR' SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode; ^~~~ EECR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setClockDivider(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:303:5: error: 'SPCR' was not declared in this scope SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:303:5: note: suggested alternative: 'EECR' SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK); ^~~~ EECR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:304:5: error: 'SPSR' was not declared in this scope SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:304:5: note: suggested alternative: 'ACSR' SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK); ^~~~ ACSR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::attachInterrupt()': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:42: error: 'SPCR' was not declared in this scope inline static void attachInterrupt() { SPCR |= _BV(SPIE); } ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:42: note: suggested alternative: 'EECR' inline static void attachInterrupt() { SPCR |= _BV(SPIE); } ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:54: error: 'SPIE' was not declared in this scope inline static void attachInterrupt() { SPCR |= _BV(SPIE); } ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:54: note: suggested alternative: 'ACIE' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::detachInterrupt()': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:42: error: 'SPCR' was not declared in this scope inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); } ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:42: note: suggested alternative: 'EECR' inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); } ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from sketch\sketch_apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:55: error: 'SPIE' was not declared in this scope inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); } ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:55: note: suggested alternative: 'ACIE' In file included from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1:0: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h: At global scope: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:117:33: error: 'SS' was not declared in this scope #define RF69_SPI_CS SS // SS is the SPI slave select pin, for instance D10 on ATmega328 ^ C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:190:34: note: in expansion of macro 'RF69_SPI_CS' RFM69(uint8_t slaveSelectPin=RF69_SPI_CS, uint8_t interruptPin=RF69_IRQ_PIN, bool isRFM69HW=false); ^~~~~~~~~~~ C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:117:33: note: suggested alternative: 'SE' #define RF69_SPI_CS SS // SS is the SPI slave select pin, for instance D10 on ATmega328 ^ C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:190:34: note: in expansion of macro 'RF69_SPI_CS' RFM69(uint8_t slaveSelectPin=RF69_SPI_CS, uint8_t interruptPin=RF69_IRQ_PIN, bool isRFM69HW=false); ^~~~~~~~~~~ In file included from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:3:0: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\tinySPI-master\src/tinySPI.h:54:16: error: conflicting declaration 'tinySPI SPI' extern tinySPI SPI; ^~~ In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:322:17: note: previous declaration as 'SPIClass SPI' extern SPIClass SPI; ^~~ sketch_apr07a:34:7: error: call to 'RFM69::RFM69(uint8_t, uint8_t, bool)' uses the default argument for parameter 1, which is not yet defined RFM69 radio; ^~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino: In function 'void setup()': sketch_apr07a:40:3: error: 'Serial' was not declared in this scope Serial.begin(9600); ^~~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:40:3: note: suggested alternative: 'Stream' Serial.begin(9600); ^~~~~~ Stream C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino: In function 'void loop()': sketch_apr07a:78:7: error: 'Serial' was not declared in this scope if (Serial.available() > 0) ^~~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:78:7: note: suggested alternative: 'Stream' if (Serial.available() > 0) ^~~~~~ Stream sketch_apr07a:134:5: error: 'Serial' was not declared in this scope Serial.print("received from node "); ^~~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:134:5: note: suggested alternative: 'Stream' Serial.print("received from node "); ^~~~~~ Stream exit status 1 call to 'RFM69::RFM69(uint8_t, uint8_t, bool)' uses the default argument for parameter 1, which is not yet defined
Hab jetzt nur mal den Anfang gelesen. Ist die CPU auf attiny84 eingestellt? Das braucht die tief drin verwendete AvrLibC. Um die richtigen Definitionen für den Chip zu finden. Bin kein wirklicher Arduino-User und wenn dann benutze ich (als Eclipse-Anhänger) Sloeber. Meist verwende ich aber das Avr-Plugin, da könnt ich dir genau sagen, was einzustellen ist.
Wenn ich als Board meinen Arduino UNO auswähle, klappt das kompilieren. Allerdings sobald ich wieder alles auf den ATTiny84 einstelle, kommt der oben gepostete Fehlerkatalog
Ich denke schon, dass ich alles in der Hinsicht richtig eingestellt hatte. Wie könnte ich den mit dem AVR-PlugIn arbeiten? Bräuchte ich dafür einen anderen Programmer? dafür gibt es glaube ich garnicht die ganzen Bibliotheken und codes oder?
Maximilian S. schrieb: > Wenn ich als Board meinen Arduino UNO auswähle, klappt das kompilieren. > Allerdings sobald ich wieder alles auf den ATTiny84 einstelle, kommt der > oben gepostete Fehlerkatalog Hast du denn ATtiny84 Support installiert? Benutzt du die Arduino IDE? Eventuell hilft das: http://wiki.lauerbach.de/wiki/view.do?page=ATTiny
Maximilian S. schrieb: > Ich denke schon, dass ich alles in der Hinsicht richtig eingestellt > hatte. > > Wie könnte ich den mit dem AVR-PlugIn arbeiten? Bräuchte ich dafür einen > anderen Programmer? dafür gibt es glaube ich garnicht die ganzen > Bibliotheken und codes oder? Besorg dir Sloeber? Das ist ein für Arduino konfiguriertes Eclipse, das komfortables Installieren von Plattformen, Boards, Libraries erlaubt und dabei auch die notwendigen Toolchains installiert.
:
Bearbeitet durch User
Genau bisher nutze ich die Arduino IDE. Den ATtiny84-Support habe ich auch eingerichtet. Das wäre für mich kein Problem Sloeber zu holen, aber an den Fehlermeldungen wird sich kaum was ändern oder? Oder hast du dahingehend eine Idee?
@ TO Gehe die Fehlermeldungen durch und stelle fest woran es liegt. So wie ich es sehe kommen die Fehlermeldungen, weil der Quelltext nicht für deinen Controller geschrieben wurde.
Maximilian S. schrieb: > Genau bisher nutze ich die Arduino IDE. Den ATtiny84-Support habe ich > auch eingerichtet. > > Das wäre für mich kein Problem Sloeber zu holen, aber an den > Fehlermeldungen wird sich kaum was ändern oder? > Oder hast du dahingehend eine Idee? Versuch mal dem Compiler ein "-v" mitzugeben, dann erzählt der ganz detailliert was im mitgeteilt wurde, bzw. was er aus Defaults, Environment und CommandLineOption als zu nutzen erkannt hat. Im Compilerautput müßte dann "attiny84" zu finden sein.
Marble schrieb: > So wie ich es sehe kommen die Fehlermeldungen, weil der Quelltext nicht > für deinen Controller geschrieben wurde. Wäre es ein großer Aufwand diesen auf den ATtiny umzuwandeln?
Noch durch die Fehler gegangen... Du hast anscheinend nich die Mega-SPI im Einsatz. Nenn mal die Tiny84er Varianten (spi.h, spi.c), die sich hoffentlich in deinem Sourceverzeichnis befinden in spi_84.h/.c um und ändere das #include Statement auf "spi_84.h". Die "" sind wichtig, dann wird nur lokal im aktuellen Verzeichnis des inkludierenden Files gesucht.
Die ausführliche Kompilierung führt dazu: Arduino: 1.8.12 (Windows 10), Board: "ATtiny24/44/84, ATtiny84, Internal 8 MHz" C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Maximilian Schrader\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Maximilian Schrader\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Maximilian Schrader\Documents\Arduino\libraries -fqbn=attiny:avr:ATtinyX4:cpu=attiny84,clock=internal8 -ide-version=10812 -build-path C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117 -warnings=none -build-cache C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_cache_618562 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Maximilian Schrader\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Maximilian Schrader\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Maximilian Schrader\Documents\Arduino\libraries -fqbn=attiny:avr:ATtinyX4:cpu=attiny84,clock=internal8 -ide-version=10812 -build-path C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117 -warnings=none -build-cache C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_cache_618562 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino Using board 'ATtinyX4' from platform in folder: C:\Users\Maximilian Schrader\AppData\Local\Arduino15\packages\attiny\hardware\avr\1.0.2 Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr Detecting libraries used... "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\sketch \\sketch_apr07a.ino.cpp" -o nul Alternatives for RFM69.h: [RFM69-master@1.3.0] ResolveLibrary(RFM69.h) -> candidates: [RFM69-master@1.3.0] "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\sketch \\sketch_apr07a.ino.cpp" -o nul Alternatives for SPI.h: [SPI@1.0] ResolveLibrary(SPI.h) -> candidates: [SPI@1.0] "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\sketch \\sketch_apr07a.ino.cpp" -o nul Alternatives for tinySPI.h: [tinySPI-master@1.1.2] ResolveLibrary(tinySPI.h) -> candidates: [tinySPI-master@1.1.2] "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\sketch \\sketch_apr07a.ino.cpp" -o nul "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "C:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master\\RFM69.cpp" -o nul "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "C:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master\\RFM69_ATC.cpp" -o nul "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "C:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master\\RFM69_OTA.cpp" -o nul Alternatives for SPIFlash.h: [SPIFlash_LowPowerLab@101.1.2] ResolveLibrary(SPIFlash.h) -> candidates: [SPIFlash_LowPowerLab@101.1.2] "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\SPIFlash_LowPowerLab" "C:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master\\RFM69_OTA.cpp" -o nul "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\SPIFlash_LowPowerLab" "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src\\SPI.cpp" -o nul "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\SPIFlash_LowPowerLab" "C:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src\\tinySPI.cp p" -o nul "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\SPIFlash_LowPowerLab" "C:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\SPIFlash_LowPowerLab\\SPIFlash. cpp" -o nul Generating function prototypes... "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\SPIFlash_LowPowerLab" "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\sketch \\sketch_apr07a.ino.cpp" -o "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\prepro c\\ctags_target_for_gcc_minus_e.cpp" "C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\prepro c\\ctags_target_for_gcc_minus_e.cpp" Sketch wird kompiliert... "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=attiny84 -DF_CPU=8000000L -DARDUINO=10812 -DARDUINO_attiny -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\Maximilian Schrader\\AppData\\Local\\Arduino15\\packages\\attiny\\hardware\\avr\\1. 0.2\\variants\\tiny14" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\RFM69-master" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\tinySPI-master\\src" "-IC:\\Users\\Maximilian Schrader\\Documents\\Arduino\\libraries\\SPIFlash_LowPowerLab" "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\sketch \\sketch_apr07a.ino.cpp" -o "C:\\Users\\MAXIMI~1\\AppData\\Local\\Temp\\arduino_build_420117\\sketch \\sketch_apr07a.ino.cpp.o" In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In member function 'void SPISettings::init_AlwaysInline(uint32_t, uint8_t, uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:16: error: 'SPE' was not declared in this scope spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) | ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:16: note: suggested alternative: 'SPH' C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:27: error: 'MSTR' was not declared in this scope spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) | ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:27: note: suggested alternative: 'PSTR' C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:65: error: 'DORD' was not declared in this scope spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) | ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:65: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::beginTransaction(SPISettings)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:203:5: error: 'SPCR' was not declared in this scope SPCR = settings.spcr; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:203:5: note: suggested alternative: 'EECR' SPCR = settings.spcr; ^~~~ EECR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:204:5: error: 'SPSR' was not declared in this scope SPSR = settings.spsr; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:204:5: note: suggested alternative: 'ACSR' SPSR = settings.spsr; ^~~~ ACSR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static uint8_t SPIClass::transfer(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:209:5: error: 'SPDR' was not declared in this scope SPDR = data; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:209:5: note: suggested alternative: 'EEDR' SPDR = data; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:14: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; // wait ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:14: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; // wait ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:25: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; // wait ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:25: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static uint16_t SPIClass::transfer16(uint16_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:11: error: 'SPCR' was not declared in this scope if (!(SPCR & _BV(DORD))) { ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:11: note: suggested alternative: 'EECR' if (!(SPCR & _BV(DORD))) { ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:22: error: 'DORD' was not declared in this scope if (!(SPCR & _BV(DORD))) { ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:22: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:224:7: error: 'SPDR' was not declared in this scope SPDR = in.msb; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:224:7: note: suggested alternative: 'EEDR' SPDR = in.msb; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:233:7: error: 'SPDR' was not declared in this scope SPDR = in.lsb; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:233:7: note: suggested alternative: 'EEDR' SPDR = in.lsb; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::transfer(void*, size_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:247:5: error: 'SPDR' was not declared in this scope SPDR = *p; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:247:5: note: suggested alternative: 'EEDR' SPDR = *p; ^~~~ EEDR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:16: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:16: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:27: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:27: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:14: error: 'SPSR' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:14: note: suggested alternative: 'ACSR' while (!(SPSR & _BV(SPIF))) ; ^~~~ ACSR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:25: error: 'SPIF' was not declared in this scope while (!(SPSR & _BV(SPIF))) ; ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:25: note: suggested alternative: 'WDIF' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setBitOrder(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:31: error: 'SPCR' was not declared in this scope if (bitOrder == LSBFIRST) SPCR |= _BV(DORD); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:31: note: suggested alternative: 'EECR' if (bitOrder == LSBFIRST) SPCR |= _BV(DORD); ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:43: error: 'DORD' was not declared in this scope if (bitOrder == LSBFIRST) SPCR |= _BV(DORD); ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:43: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:10: error: 'SPCR' was not declared in this scope else SPCR &= ~(_BV(DORD)); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:10: note: suggested alternative: 'EECR' else SPCR &= ~(_BV(DORD)); ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:24: error: 'DORD' was not declared in this scope else SPCR &= ~(_BV(DORD)); ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:24: note: suggested alternative: 'DDRB' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setDataMode(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:298:5: error: 'SPCR' was not declared in this scope SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode; ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:298:5: note: suggested alternative: 'EECR' SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode; ^~~~ EECR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setClockDivider(uint8_t)': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:303:5: error: 'SPCR' was not declared in this scope SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:303:5: note: suggested alternative: 'EECR' SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK); ^~~~ EECR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:304:5: error: 'SPSR' was not declared in this scope SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK); ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:304:5: note: suggested alternative: 'ACSR' SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK); ^~~~ ACSR C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::attachInterrupt()': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:42: error: 'SPCR' was not declared in this scope inline static void attachInterrupt() { SPCR |= _BV(SPIE); } ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:42: note: suggested alternative: 'EECR' inline static void attachInterrupt() { SPCR |= _BV(SPIE); } ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:54: error: 'SPIE' was not declared in this scope inline static void attachInterrupt() { SPCR |= _BV(SPIE); } ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:54: note: suggested alternative: 'ACIE' In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::detachInterrupt()': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:42: error: 'SPCR' was not declared in this scope inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); } ^~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:42: note: suggested alternative: 'EECR' inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); } ^~~~ EECR In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\MAXIMI~1\AppData\Local\Temp\arduino_build_420117\sketch\sketch_ apr07a.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:55: error: 'SPIE' was not declared in this scope inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); } ^ C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:55: note: suggested alternative: 'ACIE' In file included from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1:0: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h: At global scope: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:117:33: error: 'SS' was not declared in this scope #define RF69_SPI_CS SS // SS is the SPI slave select pin, for instance D10 on ATmega328 ^ C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:190:34: note: in expansion of macro 'RF69_SPI_CS' RFM69(uint8_t slaveSelectPin=RF69_SPI_CS, uint8_t interruptPin=RF69_IRQ_PIN, bool isRFM69HW=false); ^~~~~~~~~~~ C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:117:33: note: suggested alternative: 'SE' #define RF69_SPI_CS SS // SS is the SPI slave select pin, for instance D10 on ATmega328 ^ C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:190:34: note: in expansion of macro 'RF69_SPI_CS' RFM69(uint8_t slaveSelectPin=RF69_SPI_CS, uint8_t interruptPin=RF69_IRQ_PIN, bool isRFM69HW=false); ^~~~~~~~~~~ In file included from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:2:0: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\tinySPI-master\src/tinySPI.h:54:16: error: conflicting declaration 'tinySPI SPI' extern tinySPI SPI; ^~~ In file included from C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master/RFM69.h:29:0, from C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:322:17: note: previous declaration as 'SPIClass SPI' extern SPIClass SPI; ^~~ sketch_apr07a:35:7: error: call to 'RFM69::RFM69(uint8_t, uint8_t, bool)' uses the default argument for parameter 1, which is not yet defined RFM69 radio; ^~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino: In function 'void setup()': sketch_apr07a:41:3: error: 'Serial' was not declared in this scope Serial.begin(9600); ^~~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:41:3: note: suggested alternative: 'Stream' Serial.begin(9600); ^~~~~~ Stream C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino: In function 'void loop()': sketch_apr07a:79:7: error: 'Serial' was not declared in this scope if (Serial.available() > 0) ^~~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:79:7: note: suggested alternative: 'Stream' if (Serial.available() > 0) ^~~~~~ Stream sketch_apr07a:135:5: error: 'Serial' was not declared in this scope Serial.print("received from node "); ^~~~~~ C:\Users\Maximilian Schrader\Desktop\sketch_apr07a\sketch_apr07a.ino:135:5: note: suggested alternative: 'Stream' Serial.print("received from node "); ^~~~~~ Stream Bibliothek RFM69-master in Version 1.3.0 im Ordner: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master wird verwendet Bibliothek SPI in Version 1.0 im Ordner: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI wird verwendet Bibliothek tinySPI-master in Version 1.1.2 im Ordner: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\tinySPI-master wird verwendet Bibliothek SPIFlash_LowPowerLab in Version 101.1.2 im Ordner: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\SPIFlash_LowPowerLab wird verwendet exit status 1 call to 'RFM69::RFM69(uint8_t, uint8_t, bool)' uses the default argument for parameter 1, which is not yet defined
Das ist der 1. Fehler:
1 | // #include <SPI.h>
|
2 | #include "SPI_84.h" |
2. Zudem wird Serial nicht funktionieren: keine UART, wenig RAM, Strings im RAM statt im Flash, ... Debugging von so kleinem Zeug macht man mit Pinwackeln und LogicAnalizer. Oder debugWire, so man hat.
:
Bearbeitet durch User
Toll, wie man hier meterlang durch den Code scrollen kann, ohne je einen Osterhasen zu sehen zu bekommen. Mit dem Tiny84 läßt sich auf jeden Fall das RFM69 nutzen. Nur bei halb so viel SRAM wie ein Mega88 kann man nicht so viele Unterprogramme verschachteln. MfG
Carl D. schrieb: > Das ist der 1. Fehler:// #include <SPI.h> > #include "SPI_84.h" Das habe ich behoben, aber hat nicht viel gebracht leider :( Carl D. schrieb: > 2. > Zudem wird Serial nicht funktionieren: keine UART, wenig RAM, Strings im > RAM statt im Flash, ... Das ist auch nur der Beispielcode von sparkfun. Letztendlich will ich einfach nur ein Programm dafür, dass das RFM in Dauerschleife senden soll. Wenn mir dafür jemand den Code anpassen würde, würde ich ja sogar ne Aufwandsentschädigung geben...
Christian S. schrieb: > Toll, wie man hier meterlang durch den Code scrollen kann, ohne je einen > Osterhasen zu sehen zu bekommen. > > Mit dem Tiny84 läßt sich auf jeden Fall das RFM69 nutzen. Nur bei halb > so viel SRAM wie ein Mega88 kann man nicht so viele Unterprogramme > verschachteln. > > MfG Weißt du denn, welche Einstellungen man im Code vornehmen muss?
Maximilian S. schrieb: > Carl D. schrieb: >> Das ist der 1. Fehler:// #include <SPI.h> >> #include "SPI_84.h" > > Das habe ich behoben, aber hat nicht viel gebracht leider :( Naja, die Hälfte der Fehlermeldungen haben mit der falschen SPI-Lib zu tun. Hast du die "Standard-SPI-Lib" schon aus der Konfiguratiob rausgenommen? Andernfalls wird diese immer noch mit-Compiliert und die Fehlermeldungen bleiben.
Ich habe sie gelöscht, so dass nur noch da steht: #include "SPI_84.h" #include <RFM69.h> ... aber nach dem Kompilieren steht immer noch das in der Fehlermeldung: Bibliothek SPI_84 in Version 1.1.2 im Ordner: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\SPI_84 wird verwendet Bibliothek RFM69-master in Version 1.3.0 im Ordner: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\RFM69-master wird verwendet Bibliothek SPI in Version 1.0 im Ordner: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI wird verwendet Bibliothek tinySPI-master in Version 1.1.2 im Ordner: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\tinySPI-master wird verwendet Bibliothek SPIFlash_LowPowerLab in Version 101.1.2 im Ordner: C:\Users\Maximilian Schrader\Documents\Arduino\libraries\SPIFlash_LowPowerLab wird verwendet
So, habb's mal selber ausprobiert: - Sloeber gestartet - Third Party Index "http://drazzy.com/package_drazzy.com_index.json" installiert. - Projekt angelegt mit Plattform "ATTinyCore", Board "Tiny24/44/84" - Librarys "RFM68_LowPowerLab", "SPI", "SPIFlash_LowPowerLab" - deine .ino reincopiert - dann noch alle print("...") durch print(F("...)) ersetzt, das spart RAM, das eh knapp ist. - compiliert - done! -> Flash: 5342 RAM: 267 (von 512)
Das werde ich gleich sofort selber ausprobieren! Carl D. schrieb: > 2. > Zudem wird Serial nicht funktionieren: keine UART, wenig RAM, Strings im > RAM statt im Flash, ... Hast du das auch rausgenommen oder hat es auch mit serial geklappt?
Moinsen, wie wäre es die meterlangen Codezeilen oder Konsolenausgaben in den Anhang zu packen oder auf Seiten wie Pastebin zu laden? Dann überleben die Mausräder der Helfenden länger und die Hilfsbereitschaft bleibt im wahrsten Sinne des Wortes nicht auf der Strecke. Soll nur als Vorschlag dienen. Aber ich finde diese meterlangen Beiträge immer furchtbar. Schönnen Ostermontagmorgen allen. Dieter P.
Maximilian S. schrieb: > Das werde ich gleich sofort selber ausprobieren! > > Carl D. schrieb: >> 2. >> Zudem wird Serial nicht funktionieren: keine UART, wenig RAM, Strings im >> RAM statt im Flash, ... > > Hast du das auch rausgenommen oder hat es auch mit serial geklappt? Ich hab alles dringelassen, nur die "String-Konstanten" per F() auch zu solchen gemacht. Ohne das F() werden die nämlich im RAM abgelegt und da die ja initialisiert werden müssen, steht ir Inhalt eh im Flash. Mit F() fällt das Zwischenspeichern im RAM weg, was bei nur 512Byte entscheidend sein kann. Wie diese "Plattform" das Thema Serial und SPI löst, hab ich gar nicht näher untersucht. SPI wird die USI benutzen, da keine Pins definiert werden müssen, man also die von der HW vorgegebenen benutz. Wo dann Serial rauskommt hab ich gar nicht näher angeschaut. Werd ich noch nachholen.
Ich habe mir Eclipse runtergeladen und auch das Sloeber Plug-In installiert. Leider kann ich keinen sketch erstellen, da ich immer das im Anhang befindliche Fehlerbild bekomme...
Dieter P schrieb: > Aber ich finde diese meterlangen Beiträge > immer furchtbar. Genau!! Und ich lese sie einfach nicht... Gruß Rainer
Ich habe es jetzt soweit hinbekommen Sloeber einzurichten. Habe auch alles so gemacht, wie du gesagt hast Carl. Leider kommen immer noch Fehlermeldungen. Habe ich was vergessen oder falsch gemacht? Hier ist mein Code: https://pastebin.com/v3QsfpUf Hier die Fehlermeldung: https://pastebin.com/VwYvsNXn
Maximilian S. schrieb: > Ich habe mir Eclipse runtergeladen und auch das Sloeber Plug-In > installiert. Leider kann ich keinen sketch erstellen, da ich immer das > im Anhang befindliche Fehlerbild bekomme... Hol dir das fertig konfigurierte Sloeber. Und mach keinen Update auf die aktuelle Eclipse Version. Mit der funktioniert Sloeber (noch) nicht. Hab gerade mal das Plattform-Paket "AvrTiny" angeschaut: - Software-Serial, Tx an PA1, benutzt nicht USI, also - SPI via USI, an die offiziellen Pins MISO/MOSI/SCL aber: Serial.print sperrt Ints
:
Bearbeitet durch User
Carl D. schrieb: > Hol dir das fertig konfigurierte Sloeber. Und mach keinen Update auf die > aktuelle Eclipse Version. Mit der funktioniert Sloeber (noch) nicht. Habe ich gemacht. Und trotzdem kamen beim kompilieren Fehler. Hier ist mein Code: https://pastebin.com/v3QsfpUf Hier die Fehlermeldung: https://pastebin.com/VwYvsNXn
Maximilian S. schrieb: > Carl D. schrieb: >> Hol dir das fertig konfigurierte Sloeber. Und mach keinen Update auf die >> aktuelle Eclipse Version. Mit der funktioniert Sloeber (noch) nicht. > > Habe ich gemacht. Und trotzdem kamen beim kompilieren Fehler. > > Hier ist mein Code: > > https://pastebin.com/v3QsfpUf > > Hier die Fehlermeldung: > > https://pastebin.com/VwYvsNXn In Zeile 22 ist ein Kommentar falsch umgebrochen Der Rest: Folgefehler
:
Bearbeitet durch User
Den Fehler konnte ich auch noch schnell beheben. Aber warum kommen noch diese Fehler: 1) error: 'millis' was not declared in this scope 2) libraries\RFM69_LowPowerLab\subdir.mk:24: recipe for target 'libraries\RFM69_LowPowerLab\RFM69.cpp.o' failed make: *** [libraries\RFM69_LowPowerLab\RFM69.cpp.o] Error 1 Das mit dem millis() sollte doch eigentlich kein Problem sein. Für den anderen Fehler kann ich mir noch nichts zusammenreimen. Außer, dass eventuell etwas mit Verzeichnispfad nicht stimmt!?
Maximilian S. schrieb: > Den Fehler konnte ich auch noch schnell beheben. > Aber warum kommen noch diese Fehler: > > 1) error: 'millis' was not declared in this scope > > 2) libraries\RFM69_LowPowerLab\subdir.mk:24: recipe for target > 'libraries\RFM69_LowPowerLab\RFM69.cpp.o' failed > make: *** [libraries\RFM69_LowPowerLab\RFM69.cpp.o] Error 1 > > Das mit dem millis() sollte doch eigentlich kein Problem sein. Für den > anderen Fehler kann ich mir noch nichts zusammenreimen. Außer, dass > eventuell etwas mit Verzeichnispfad nicht stimmt!? WIMRE, beim Anlegen des Projekt wurde irgendwas mit millis gefragt. Das Braucht einen Timer und da der Tinyx4 davon nicht viele hat, kann man den millis()-Support abschalten.
so jetzt vom Notebook aus und mit Sloeber: ein Screenshot der Projekt-Einstellungen Abschalten der "millis()"-Option liefert genau dein Fehlerbild.
:
Bearbeitet durch User
Ja Wahnsinn! Jetzt klappt tatsächlich alles ohne Error...nur noch ein paar Warnings: sowas wie: " warning: unused parameter " kommt öfters mal vor, bei dir auch ? Interessant wäre jetzt noch, wie man den Code so umgestalten kann, dass einfach nur gesendet wird. Eigentlich sollte sich doch dafür der Code extrem verkürzen oder? Konntest du nachprüfen, ob bei deinem ATtiny denn auch die entsprechenden Signale rausgehen nach dem hochladen? Also ob der Code auch etwas wirklich tut?
Da HW-Debuggen ist dann doch größerer Aufwand. Ich hab zwar einige Tinyx4 rumliegen, aber kein Board und ein RFM69 Board schon garnicht. Schau erst mal, ob aus PA1 deine Debugmeldungen rauspurzeln.
:
Bearbeitet durch User
Wieso aus PA1? und wie kontrolliert man einen spezifischen PIN, ob an diesem Debugmeldungen kommen? (sorry, ich habe sowas leider bisher kaum gemacht....habe gerade aber unheimlichen Spaß, damit zu beschäftigen....An dieser Stele schonmal ein dickes Dankeschön!)
Maximilian S. schrieb: > Wieso aus PA1? Weil die Source der Softserial, die beim Tiny84 benutzt wird, das so sagt. TX an AN0 oder PA1 RX an AN1 oder PA2 > und wie kontrolliert man einen spezifischen PIN, ob an diesem > Debugmeldungen kommen? (sorry, ich habe sowas leider bisher kaum > gemacht....habe gerade aber unheimlichen Spaß, damit zu > beschäftigen....An dieser Stele schonmal ein dickes Dankeschön!) man hat an dem Pin ein serielles Signal, das man z.B. in einen TTL-Serial-nach-USB-Konverter einspeisen kann. Diesen kann man im Arduino-Serial-Monitor auswerten. PS: mir macht das auch Spaß, denn ich muß mich nicht mit den HW-Niederungen abgeben. Quasi basteln lassen. ;-)
>Interessant wäre jetzt noch, wie man den Code so umgestalten kann, dass >einfach nur gesendet wird. Eigentlich sollte sich doch dafür der Code >extrem verkürzen oder? Hallo, um welchen Code geht es denn bei Dir? Das Senden geschieht nach korrekter Konfiguration im Wesentlichen durch das Füllen des FIFOs mit Daten, wobei es natürlich bei dem recht komplizierten Modul etliche Varianten und Feinheiten gibt. mfG
Carl D. schrieb: > man hat an dem Pin ein serielles Signal, das man z.B. in einen > TTL-Serial-nach-USB-Konverter einspeisen kann. Diesen kann man im > Arduino-Serial-Monitor auswerten. Also quasi: - Den Code auf den Tiny hochladen - Dann TTL-Serial-nach-USB-Konverter herstellen Kann dafür auch der Arduino UNO verwendet werden? Ich würde den dann so mit dem Tiny verbinden: Tiny -> Arduino Uno PA1 -> RX (D0) PA2 -> TX (D1) VCC -> 3,3V GND -> GND - Dann im Arduino-Serial-Monitor gucken, ob was kommt Habe ich das so richtig verstanden?
Christian S. schrieb: > Hallo, um welchen Code geht es denn bei Dir? Hallo! Also es gibt auf https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide/all einen Hook-Up-Guide für das RFM69 und auf der selben Seite gibt es weiter unten einen Example Code, um das ganze auszutesten. Ich brauche aber eigentlich nur einen Code, der das Modul dazu bringt, in Dauerschleife zu senden. Zusätzlich muss das ganze mit dem ATTiny84 umgesetzt werden. Mittlerweile schaffe ich es schon dank Carl diesen Beispielcode auf den Attiny zu spielen und bin gerade dabei zu gucken, ob dieser funktioniert. Wenn du eine Idee für eine Vereinfachung des Code hättest, so dass das ganze funktioniert, wäre das toll!
Maximilian S. schrieb: > Also quasi: - Den Code auf den Tiny hochladen > - Dann TTL-Serial-nach-USB-Konverter herstellen > Kann dafür auch der Arduino UNO verwendet werden? > Ich würde den dann so mit dem Tiny verbinden: > Tiny -> Arduino Uno > PA1 -> RX (D0) > PA2 -> TX (D1) > VCC -> 3,3V > GND -> GND > - Dann im Arduino-Serial-Monitor gucken, ob was kommt Also ich habe das jetzt mal so gemacht, nur PA2 nicht verbunden, da wir ja nur gucken wollten, ob etwas vom Tiny kommt. Allerdings passiert nichts, wenn ich den Serial-Monitor öffne. Interessant ist aber, dass PA1 konstant auf High ist. Das konnte ich feststellen, indem ich ne LED drangehangen habe...Jetzt weiß ich aber nicht, ob ich was falsch gemacht habe oder was der nächste Schritt wäre :S
Maximilian S. schrieb: > Carl D. schrieb: >> man hat an dem Pin ein serielles Signal, das man z.B. in einen >> TTL-Serial-nach-USB-Konverter einspeisen kann. Diesen kann man im >> Arduino-Serial-Monitor auswerten. > > Also quasi: - Den Code auf den Tiny hochladen > - Dann TTL-Serial-nach-USB-Konverter herstellen > Kann dafür auch der Arduino UNO verwendet werden? > Ich würde den dann so mit dem Tiny verbinden: > Tiny -> Arduino Uno > PA1 -> RX (D0) > PA2 -> TX (D1) > VCC -> 3,3V > GND -> GND > - Dann im Arduino-Serial-Monitor gucken, ob was kommt > > Habe ich das so richtig verstanden? Das haben andere schon beschrieben: https://oscarliang.com/use-arduino-as-usb-serial-adapter-converter/
:
Bearbeitet durch User
Carl D. schrieb: > Aber das haben andere schon beschrieben: > https://oscarliang.com/use-arduino-as-usb-serial-adapter-converter/ Okay dann baue ich das mal nach! Aber anschließend kann man den UNO auch wieder normal verwenden oder? Aber Irgendwas ist ja schon mit PIN1 passiert, da die LED leuchtet oder? Was ist denn, wenn ich da dann Debugmelungen rausbekomme?
Maximilian S. schrieb: > Carl D. schrieb: >> Aber das haben andere schon beschrieben: >> https://oscarliang.com/use-arduino-as-usb-serial-adapter-converter/ > > Okay dann baue ich das mal nach! Aber anschließend kann man den UNO auch > wieder normal verwenden oder? Sicher, solange du wirklich nur TTL-Pegel einspeist. Falls du einen original Arduino (den mit dem gesockelten 328er) hast, dann ist das Entfernen dieses das technisch einfachste. Alle anderen Methoden versuchen einfach nur den Avr vom USB-Chip zu trennen: - Dauer-Reset, dann sind alle Pins als Eingang konfiguriert - per Software Rx/Tx auf Eingang schalten und Dauerloop. > Aber Irgendwas ist ja schon mit PIN1 passiert, da die LED leuchtet oder? > Was ist denn, wenn ich da dann Debugmelungen rausbekomme? Wenn ich den richtigen Plan erwischt hab, dann liegen die LEDs an Rx/Tx so, daß sie bei Low auf den Leitungen leuchten. Low ist der Ruhezustand bei TTL-Serial. D.b. der Tiny zieht den Tx-Ausgang auf low. Gutes Zeichen.
Carl D. schrieb: > Falls du einen original Arduino (den mit dem gesockelten 328er) hast, > dann ist das Entfernen dieses das technisch einfachste. Ich verstehe nur nicht, was dann passiert. Also wenn ich den trennen würde, kann ich dann einfach meine PIN-Konfiguration vornehmen? Ich habe den Elegoo UNO R3, so einfach ist es glaube ich nicht den ATMega zu trennen... Die LED die ich an PIN PA1 drangemacht hatte, kann aber nur leuchten, wenn der TINY den PIN auf HIGH zieht (PIN ist an positiver Seite von LED). Das wäre das Gegenteil von dem, was du als gut ansiehst :S
Maximilian S. schrieb: > Carl D. schrieb: >> Falls du einen original Arduino (den mit dem gesockelten 328er) hast, >> dann ist das Entfernen dieses das technisch einfachste. > > Ich verstehe nur nicht, was dann passiert. Also wenn ich den trennen > würde, kann ich dann einfach meine PIN-Konfiguration vornehmen? Ich habe > den Elegoo UNO R3, so einfach ist es glaube ich nicht den ATMega zu > trennen... Man muß nicht physisch trennen, nur dafür sorgen, daß der 328er den Tx-Ausgang nicht beeinflusst, also entweder im Reset-Zustand, oder mit Software, die diesen dauerhaft als Eingang definiert. > Die LED die ich an PIN PA1 drangemacht hatte, kann aber nur leuchten, > wenn der TINY den PIN auf HIGH zieht (PIN ist an positiver Seite von > LED). Das wäre das Gegenteil von dem, was du als gut ansiehst :S Das könnte noch besser sein, den der Tiny84 soll ja ständig was ausgeben, sprich gelegentlich auch mal High liefern. Flackert das etwas?
:
Bearbeitet durch User
Carl D. schrieb: > Man muß nicht physisch trennen, nur dafür sorgen, daß der 328er den > Tx-Ausgang nicht beeinflusst, also entweder im Reset-Zustand, oder mit > Software, die diesen dauerhaft als Eingang definiert. Also ich habe jetzt einfach eine Litze von RESET zu GND am Uno gemacht. Zusätzlich sind VCC und GND vom TINY mit dem Uno verbunden. PA1 geht auf RX vom UNO. Leider kann ich trotzdem noch nichts im Serial Monitor sehen... Muss auch PA2 zwingend verbunden werden? Oder macht es Probleme das auf dem ATMEGA noch der Sketch von ArduinoISP drauf ist? Carl D. schrieb: > Das könnte noch besser sein, den der Tiny84 soll ja ständig was > ausgeben, sprich gelegentlich auch mal High liefern. Flackert das etwas? Meinen Augen nach ist kein Flackern zu erkennen. Die LED leuchtet konstant hell :/
Maximilian S. schrieb: > Carl D. schrieb: >> Man muß nicht physisch trennen, nur dafür sorgen, daß der 328er den >> Tx-Ausgang nicht beeinflusst, also entweder im Reset-Zustand, oder mit >> Software, die diesen dauerhaft als Eingang definiert. > > Also ich habe jetzt einfach eine Litze von RESET zu GND am Uno gemacht. > Zusätzlich sind VCC und GND vom TINY mit dem Uno verbunden. PA1 geht auf > RX vom UNO. Leider kann ich trotzdem noch nichts im Serial Monitor > sehen... Rx ist auch der Pin auf dem der PC sendet und der Arduino empfängt. Es muß Tx sein! > Muss auch PA2 zwingend verbunden werden? > Oder macht es Probleme das auf dem ATMEGA noch der Sketch von ArduinoISP > drauf ist? Reset sollte das erledigen. > Carl D. schrieb: >> Das könnte noch besser sein, den der Tiny84 soll ja ständig was >> ausgeben, sprich gelegentlich auch mal High liefern. Flackert das etwas? > > Meinen Augen nach ist kein Flackern zu erkennen. Die LED leuchtet > konstant hell :/ Also auf der Arduino-Seite muß es auf jeden Fall Tx sein, beim 84er könnte ich auch was falsch gesehen haben, aber es spricht nichts dagegen PA0..PA4 durchzuprobieren. Tx ist ein Eingang. Kann es sein, daß die Arduino-PC-Verbindung nicht auf 9600Baud eingestellt ist? Der 84er sendet nämlich (wie aus der .ino ablesbar) genau so schnell.
:
Bearbeitet durch User
Also ich habe jetzt folgendes ausprobiert: Grundeinstellung: Kabel von Reset im UNO direkt in GND vom UNO Tiny -> Arduino Uno VCC -> 3,3V GND -> GND PA1 -> TX (D1) Seriel-Monitor: keine Ausgabe LED: leuchtet stark PA2 -> TX (D1) Seriel-Monitor: keine Ausgabe LED: leuchtet schwächer PA3 -> TX (D1) Seriel-Monitor: keine Ausgabe LED: leuchtet stark PA4 -> TX (D1) Seriel-Monitor: keine Ausgabe LED: leuchtet kurz auf (Logisch für mich, da SCK-Verbindung) Also so bekomme ich nirgends etwas raus....was mache ich falsch? Muss in dem Code vielleicht noch die Bibliothekt <SoftwareSerial.h> eingebunden werden? Hast du eine Idee Carl oder kannst du den Aufbau theoretisch nachstellen, da man ja dafür kein RFM benötigt? Hast du die Chance das nachzubauen Carl?
Maximilian S. schrieb: > Also ich habe jetzt folgendes ausprobiert: > Grundeinstellung: > > Kabel von Reset im UNO direkt in GND vom UNO > Tiny -> Arduino Uno > VCC -> 3,3V > GND -> GND > > > PA1 -> TX (D1) > Seriel-Monitor: keine Ausgabe > LED: leuchtet stark > > PA2 -> TX (D1) > Seriel-Monitor: keine Ausgabe > LED: leuchtet schwächer Ein Anzeichen für Aktivität Welche Baudrate-Einstellung hat die USB-Serial-Verbindung. Das dürfte die sein, die also "Upload-Rate" (oder irgendwie so) in Sloeber eingestellt wird. Ich schau mal später nach, wie das genau gemacht wird. Den Tiny84 auf 115209 einzustellen wird nicht funktionieren, da steht in der Serial-Source ausdrücklich drin, daß die nur sehr langsam funktioniert (9600). Muß jetzt erst mal ins Homeoffice, bin eh schon spät ...
:
Bearbeitet durch User
Carl D. schrieb: > Welche Baudrate-Einstellung hat die USB-Serial-Verbindung. Also bei mir steht: <Connect to Serial port COM3 at 9600>
:
Bearbeitet durch User
Maximilian S. schrieb: > Carl D. schrieb: >> Welche Baudrate-Einstellung hat die USB-Serial-Verbindung. > > Also bei mir steht: > > <Connect to Serial port COM3 at 9600> Ja , gerade auch gesehen, das kann man im SerialMonitor direkt angeben. Hm, dann würde ich erst mal mit Oszi oder LogicAnalyser schauen, was die Leitung tatsächlich macht. Eventuell ist das Signal invertiert? Kann man aber nur raten oder eben, falls Gerätschaft vorhanden, messen. Edit: noch mal die TinySoftwareSerial angeschaut: - PA1 ist deren Tx Pin, also der Ausgang. - Ruhezustand ist HIGH, also LED leuchten ist OK, sollte bei Aktivität dunkler werden. Wobei das Ding (Serial) grenzwertig ist, denn es hat keinerlei Puffer, d.h. es legt pro Zeichen eine Pause von grob 1ms ein.
:
Bearbeitet durch User
Das einzige Messinstrument, welches ich momentan da habe, ist ein Multimeter...damit wird das leider etwas schwieriger. So wie ich das beurteilen kann, sind an mehreren PINS High oder LOW Signale. Diese sind aber statisch und nicht dynamisch vorhanden. Was die PINS im Endeffekt machen sollen, um das RFM anzusteuern, ist ja über die Bibliotheken vorgegeben. Allerdings kann ich mir dieses statische Verhalten nicht wirklich erklären... Carl D. schrieb: > In der RFM69.h gibt es Konfiguration der Pins, etc. Da muß, ausgehen vom > atmega328 ein Eintrag für den Tiny84 rein, also dessen SPI-Pins. Gilt das eigentlich immer noch, auch für die Konfiguration bei Sloeber? Das könnte ich sonst auch nochmal ändern Carl D. schrieb: > - PA1 ist deren Tx Pin, also der Ausgang. > - Ruhezustand ist HIGH, also LED leuchten ist OK, sollte bei Aktivität > dunkler werden. Das entspricht ja schonmal der leuchtenden LED. Allerdings ist wie gesagt keine Dynamik und dementsprechend keine Aktivität festzustellen Carl D. schrieb: > Wobei das Ding (Serial) grenzwertig ist, denn es hat keinerlei Puffer, > d.h. es legt pro Zeichen eine Pause von grob 1ms ein. Wenn ich im Endeffekt aber eigentlich nur einen Code möchte, der dauerhaft für das Senden mit dem RFM69 sorgt...brauchte ich da überhaupt das mit dem Serial? Ich will mir ja nichts anzeigen lassen in der Endanwendung
:
Bearbeitet durch User
Maximilian S. schrieb: > Das einzige Messinstrument, welches ich momentan da habe, ist ein > Multimeter...damit wird das leider etwas schwieriger. Hm, Kauf minimal einen 10€-LA, der läuft mit sigrok (unter Linux) ganz gut. > So wie ich das beurteilen kann, sind an mehreren PINS High oder LOW > Signale. Diese sind aber statisch und nicht dynamisch vorhanden. Was die > PINS im Endeffekt machen sollen, um das RFM anzusteuern, ist ja über die > Bibliotheken vorgegeben. Allerdings kann ich mir dieses statische > Verhalten nicht wirklich erklären... Dynamisch sind die aber im ms..μs-Bereich. Das sieht man nicht am MM. > Carl D. schrieb: >> In der RFM69.h gibt es Konfiguration der Pins, etc. Da muß, ausgehen vom >> atmega328 ein Eintrag für den Tiny84 rein, also dessen SPI-Pins. > > Gilt das eigentlich immer noch, auch für die Konfiguration bei Sloeber? > Das könnte ich sonst auch nochmal ändern Nein, das war bevor ich das AvrTiny-Plattform-Paket kannte. Dieses hat eine SPI-Implementierung, die die Standard=Pinbelegungs der Chips verwendet. Also die Pins, die auch mit MISO/MOSI/SCLK bezeichnet werden. SS (SlaveSelect) wird ja in der .ino definiert. > Carl D. schrieb: >> - PA1 ist deren Tx Pin, also der Ausgang. >> - Ruhezustand ist HIGH, also LED leuchten ist OK, sollte bei Aktivität >> dunkler werden. > > Das entspricht ja schonmal der leuchtenden LED. Allerdings ist wie > gesagt keine Dynamik und dementsprechend keine Aktivität festzustellen Ohne Meßgeräte schwer nachvollziehbar. > Carl D. schrieb: >> Wobei das Ding (Serial) grenzwertig ist, denn es hat keinerlei Puffer, >> d.h. es legt pro Zeichen eine Pause von grob 1ms ein. > > Wenn ich im Endeffekt aber eigentlich nur einen Code möchte, der > dauerhaft für das Senden mit dem RFM69 sorgt...brauchte ich da überhaupt > das mit dem Serial? Ich will mir ja nichts anzeigen lassen in der > Endanwendung Dann z.B. per #ifdef DEBUG ... #endif ausklammern. Mit LA kann man das auch per Pin-Wackeln debuggen, das stört auch das Timing nicht so sehr.
Carl D. schrieb: > Hm, Kauf minimal einen 10€-LA, der läuft mit sigrok (unter Linux) ganz > gut. Ich werde mir auch einen bestellen. Mit Windows sollte aber doch auch möglich sein, damit zu arbeiten oder? Carl D. schrieb: > Dynamisch sind die aber im ms..μs-Bereich. Das sieht man nicht am MM. Meine Hoffnung war ja, es am Flackern von einer LED zu erkennen...da weiß ich leider nicht in wie weit die Auflösungsgrenze meiner Augen ist :D Carl D. schrieb: > Dann z.B. per #ifdef DEBUG ... #endif ausklammern. Ich werde heute mal den Code anpassen und dann hier posten. Gibt es sonst noch was, wie ich verfahren kann, ohne erstmal mit dem LA zu arbeiten? Mein Plan wäre jetzt weiter den Code besser zu verstehen, um genau zu wissen was ich ändern kann und muss. Hättest du die Möglichkeit, auch nochmal etwas zu testen? Ich bin echt hochotiviert und habe Bock, das Projekt innerhalb der nächsten 1-2 Wochen zum Abschluss zu bringen ! Und wenn alles fertig ist und klappt, bin ich wie gesagt auch gerne bereit dazu, eine kleine Aufwandsentschädigung zu senden :)
In der RFM69.cpp werden mir zwei Warnungen angezeigt: 1) Member '_address' was not initialized in this constructor 2) Member '_interruptNum' was not initialized in this constructor Eine Idee woran das liegt oder ob da was fehlt, was die Funktionalität einschränkt?
Maximilian S. schrieb: > In der RFM69.cpp werden mir zwei Warnungen angezeigt: > > 1) Member '_address' was not initialized in this constructor > 2) Member '_interruptNum' was not initialized in this constructor > > Eine Idee woran das liegt oder ob da was fehlt, was die Funktionalität > einschränkt? Das liegt daran, daß der Konstruktor der Klasse diese Felder nicht initialisiert. Er verläßt einfach drauf, daß die einzige Instanz der Klasse global deklariert ist und deswegen mit hex0 initialisiert wird. Offenbar gibt es keine gravierenden Probleme damit, sonst wäre das anders gebaut.
Morgen habe ich spätestens den LA!! Mir ist noch was eingefallen, bei allem was ich jetzt mal mit dem SerialMonitor ausprobiert hatte, wurden für den Tiny die Pins von RX und TX klar definiert. Könnte man das jetzt nicht auch machen, um sich wirklich sicher zu sein, wo TX und RX sind?
Noch eine Frage: In der SPI.cpp und der R69.cpp wird einiges mit dem Slave-Select Pin gemacht. Es gibt beim Tiny aber ja gar keinen Pin der grundsätzlich dafür vorgesehen ist. Wo wird der definiert? Muss man diesen selber definieren? MISO,MOSI und SCK kann ich ja verstehen, da es für diese feste PINs gibt. Nur was ist mit SS (manchmal auch CS genannt)???
Hallo, der SS muß nur bei den Mega-Typen besonders beachtet werden und als Ausgang geschaltet sein. Bei Deinem Tiny kommt das nicht vor. Notfalls kannst Du bei einem z.B mega88 im Dabla die Passage nachlesen. mfG
Christian S. schrieb: > Bei Deinem Tiny kommt das nicht vor. Aber das RFM-Modul hat auch einen SS-Pin, dieser muss doch mit dem SS-PIN vom Tiny verbunden werden?
Maximilian S. schrieb: > Morgen habe ich spätestens den LA!! > > Mir ist noch was eingefallen, bei allem was ich jetzt mal mit dem > SerialMonitor ausprobiert hatte, wurden für den Tiny die Pins von RX und > TX klar definiert. Könnte man das jetzt nicht auch machen, um sich > wirklich sicher zu sein, wo TX und RX sind? Der Chip selbst hat eben keine Rx/Tx, aber die Tiny84-Softserial-Implementierung benutzt die beiden Pins des Analog-Komparators AN1/AN2. Bei einem Mega328 gibt es eine UART und die hat genau definierte Pins.
:
Bearbeitet durch User
Carl D. schrieb: > Bei einem Mega328 gibt es eine UART und die hat genau definierte Pins. Aber ich will ja den SS_Pin definieren für die Kommunikation zwischen Tiny und RFM. Gehe ich recht in der Annahme, dass der SS_Pin in der SPI.cpp standardmäßig auf Pin 3 gelegt wird? Muss man das in der .ino anpassen und wenn ja, wie? Weil der SS_Pin wird ja definitiv für die Kommunikation von RFM mit Tiny benötigt. In dem Code meiner .ino wird ja auch durch den Befehel >> radio.send das SPI-Kommunikationsprotokoll aus der SPI.cpp ausgeführt.
Maximilian S. schrieb: > Aber das RFM-Modul hat auch einen SS-Pin, dieser muss doch mit dem > SS-PIN vom Tiny verbunden werden? Müssen muß er das nicht, nur weil er so heißt. Kann man machen, falls als Ausgang konfiguriert. NSS = SPI Chip select input Das ist einfach der chip-select Eingang und ist low-aktiv. Den kannst Du an einen beliebigen Ausgang des Mikrocontrollers anschießen. Ob Deine Arduino-Umgebung und das vorgefertigte Programm ihn dann richtig bedienen können, steht auf einem anderen Blatt. Das müßte man dann anpassen Im Quelltext. Steht im Dabla des RFM69 unter 5.2.1. SPI Interface >Weil der SS_Pin wird ja definitiv für die Kommunikation von RFM mit Tiny >benötigt. Dann wirst Du ein Unterprogramm benötigen, das mit Hilfe der normalen Pins ein SPI-Interface nachbildet in software, weil dies am Tiny so nicht als Hardware vorhanden ist. Der leichtere Weg wäre also, mindestens einen ATMega8, Mega88 und Konsorten zu verwenden. Und ich glaube, Du hast die Datenblätter der Komponenten noch nicht wirklich inhaliert und verstanden. Natürlich möchte man zu Anfang immer am besten eine funktionierende Spielwiese haben, aufgrund derer man danach alles ausprobieren und verstehen kann. Aber die Entwickungsumgebung erfolgreich zu installieren ist auch schon ein Kunststück. mfG
:
Bearbeitet durch User
1) Christian S. schrieb: > Dann wirst Du ein Unterprogramm benötigen, das mit Hilfe der normalen > Pins ein SPI-Interface nachbildet in software, weil dies am Tiny so > nicht als Hardware vorhanden ist. Der leichtere Weg wäre also, > mindestens einen ATMega8, Mega88 und Konsorten zu verwenden. Leider muss ich es trotzdem mit dem ATtiny machen. Wenn es grundsätzlich nicht möglich ist, würde ich schon umsteigen auf einen anderen µC. Ich will alles versuchen, um die Projektvorgabe exakt zu lösen. 2) In der TinySoftwareSerial gibt es eine Warnung, die ich nich ganz nachvollziehen kann (siehe Anhang). Ist diese schlimm und muss behoben werden? 3) Christian S. schrieb: > Dann wirst Du ein Unterprogramm benötigen, das mit Hilfe der normalen > Pins ein SPI-Interface nachbildet in software, weil dies am Tiny so > nicht als Hardware vorhanden ist. In der Sloeber IDE gibt es bereits eine SPI Bibliothek, die auch auf den ATTiny angepasst ist. Damit sollte das Problem mit dem SPI-Interface gelöst sein. Mein Problem ist nur weiterhin, an welcher Stelle ich genau den SS_PIN definiere
Maximilian S. schrieb: > 1) Christian S. schrieb: >> Dann wirst Du ein Unterprogramm benötigen, das mit Hilfe der normalen >> Pins ein SPI-Interface nachbildet in software, weil dies am Tiny so >> nicht als Hardware vorhanden ist. Der leichtere Weg wäre also, >> mindestens einen ATMega8, Mega88 und Konsorten zu verwenden. Las dich verwirren. SPI ist so simpel gestrickt, daß das auch mit der USI eines Tiny geht. USI ist eigentlich nur ein Schieberegister (wie auch die große SPI) und einem kleinen Zähler um nicht jedes einzelne Bit per Software machen zu müssen. > Leider muss ich es trotzdem mit dem ATtiny machen. Wenn es grundsätzlich > nicht möglich ist, würde ich schon umsteigen auf einen anderen µC. Ich > will alles versuchen, um die Projektvorgabe exakt zu lösen. Du könntest natürlich die Aufgabe zweiteilen. Erst mal auf dem Standard-Arduino zum laufen bekommen und dann die Tiny84 spezifischen Probleme lösen > > 2) In der TinySoftwareSerial gibt es eine Warnung, die ich nich ganz > nachvollziehen kann (siehe Anhang). Ist diese schlimm und muss behoben > werden? Da die Endemeldung des AVR-Dude zu sehen ist, hat das Compilieren funktioniert. Das ist eine Meldung von CDT, also Eclipse, das versucht Fehler selbst zu erkennen, in dem Fall findet der Compiler aber, daß es keinen Grund für eine virtuelle Methode gibt, da es nur eine Klasse Serial gibt. Er ruft also gleich die tüchtige Methode auf, ohne erst über vtable auf die richtige Methodenadresse zugreifen zu müssen. Pointer-Operationen vermeidet man auf AVRs lieber. Statt einem CALL braucht man 4 LD + ICALL und zerstört (mindestens) R30/R31. Aber wie gesagt, GCC kennt sich da aus. > 3) Christian S. schrieb: >> Dann wirst Du ein Unterprogramm benötigen, das mit Hilfe der normalen >> Pins ein SPI-Interface nachbildet in software, weil dies am Tiny so >> nicht als Hardware vorhanden ist. > > In der Sloeber IDE gibt es bereits eine SPI Bibliothek, die auch auf den > ATTiny angepasst ist. Damit sollte das Problem mit dem SPI-Interface > gelöst sein. Mein Problem ist nur weiterhin, an welcher Stelle ich genau > den SS_PIN definiere Die gibt es auch außerhalb, Sloeber verpackt das nur schön in einem Eclipse-CDT, so daß man endlich einen Editor hat, der den Namen verdient. Außerdem ist das Installieren von Plattformen (inkl. Toolchains), Boards und Libraries sehr einfach. Schwieriger ist dann die Frage, welche Lib unterstützt welche Plattform. AVR-Libs müssen nicht zu einem ESP-Chip passen.
Hallo,
> In der Sloeber IDE gibt es bereits eine SPI Bibliothek, die auch auf den >ATTiny
angepasst ist
Vielleicht wäre es vorteilhaft, wenn Du diesen Teil des Quelltextes mal
direkt zum Lesen zur Verfügung stellen würdest. Ich wüßte nicht, wo ich
da suchen soll, da ich Deine Softwarepakete nicht kenne. Fragen zu den
RFM-Modulen sind in der Vergangenheit oft stecken gebieben.
MfG
Maximilian S. schrieb: > Morgen habe ich spätestens den LA!! > > Mir ist noch was eingefallen, bei allem was ich jetzt mal mit dem > SerialMonitor ausprobiert hatte, wurden für den Tiny die Pins von RX und > TX klar definiert. Könnte man das jetzt nicht auch machen, um sich > wirklich sicher zu sein, wo TX und RX sind? Heute ist Morgen! Ist der LA da? Funktioniert er? Welche Software benutzt er? Hat er Serial-/SPI-Decoder? Damit könntest du sehen was der Tiny so erzählt.
:
Bearbeitet durch User
Hallo zusammen, also ich habe herausgefunden, wo man die PINs für RX und TX selber einstellen kann. Das macht man in der pins_arduino.h (siehe Bild Tx und Rx PINs). Dadurch habe ich mir alles so definiert, dass meine Konfiguration passt und die Serielle Kommunikation zumindest einseitig klappt. Also ich kann seriell Daten vom Attiny mittels UNO auslesen. Des Weiteren ist in der pins_arduino.h die PIN-Belegung für den ATtiny vorgegeben (siehe Bild SPI-PIN Belegung Tiny). Dort ist auch der SS-Pin definiert und liegt wie vermutet auf PIN 3 (siehe Bild SPI-PIN). Carl D. schrieb: > Ist der LA da? Der LA ist angekommen. Ich werde ihn jetzt in Betrieb nehmen und ausprobieren. Mein Gedanke ist jetzt meinen modifizierten Code, quasi Senden in Dauerschleife mit einer kleinen Kontrolle über eine LED, auf den Tiny zu spielen und die SPI-Verbindungen an den LA anzuschließen und gucken was passiert. Das bedeutet: #define SS 3 #define MOSI 5 #define MISO 6 #define SCK 4 Auch wenn dann nichts auf dem SPI-Bus liegt, sollte ja zumindest beim Start jedes Cycles irgendwas zu sehen sein. Mein Code, der dauerhaft einen vollen Puffer sendet findet ihr hier: https://pastebin.com/VbWPn1Gg Außerdem könnt ihr auf einem Screenshot sehen, dass der Puffer immer voll ist (siehe Bild Voller Puffer). Carl D. schrieb: > Funktioniert er? Welche Software benutzt er? Hat er > Serial-/SPI-Decoder? Sobald ich ihn in Betrieb habe, melde ich mich! Christian S. schrieb: > Vielleicht wäre es vorteilhaft, wenn Du diesen Teil des Quelltextes mal > direkt zum Lesen zur Verfügung stellen würdest. Ich wüßte nicht, wo ich > da suchen soll, da ich Deine Softwarepakete nicht kenne. klar, ich packe einfach mal ein paar Bibliotheken hier rein: SPI.h -> https://pastebin.com/n9NNJsFd SPI.cpp -> https://pastebin.com/d27Rc33Y pins_arduino.h -> https://pastebin.com/pvXqDiwx TinySoftwareSerial.h -> https://pastebin.com/gLrA6fai TinySoftwareSerial.cpp -> https://pastebin.com/GEn3hNCX Ich hoffe, dass die SPI-Verbindung zum RFM-Modul so klappen wird. Werde jetzt wie gesagt, mit dem LA mal gucken was an MISO etc. ankommt. Vielleicht gibt es danach ja neue Erkenntnisse!
:
Bearbeitet durch User
Hi Max, von deiner Sorte bräuchten wir mehr. Irgendwann hat mich die "richtige" Arbeit wieder so eingespannt, daß ich keine Zeit mehr hatte. Trotzdem hast du dich durchgebissen. Ich hatte schon befürchtet, das endet wie andere Arduino-Projekte, aber ich lass mich gerne positiv überraschen. +10
Ja, "voller Puffer" sendet wohl 64 gleiche Zeichen. Der Empfänger sollte dann passend konfiguriert sein, auch was die Register 0x37 bis 0x3A angeht. AES kann erst mal abgeschaltet bleiben. MfG
Leider war ich gestern unterwegs und wollte nichts zwischen Tür und Angel erzwingen. Deswegen geht es heute weiter. Auch wenn noch nicht viel, aber hier schon mal ein paar gute Nachrichten: Carl D. schrieb: > Funktioniert er? Ich habe für einen einfachen Test an dem positiven Ende der LED einen Channel von dem LA angeschlossen und GND von LA mit GND verbunden. Das hat schon mal geklappt und ich habe auch eine Aufnahme gemacht (siehe Bild LED-Test Logic Analyzer ). Carl D. schrieb: > Welche Software benutzt er? Ich habe mir die kostenlose Software von Saleae Logic runtergeladen. Soll zwar nur ne Demoversion sein, ist aber voll funktionsfähig. Carl D. schrieb: > Hat er > Serial-/SPI-Decoder? Wenn ich deine Frage richtig verstehe, bietet die Software beides an und dementsprechen kann der LA das denke ich auch. Und das sind ne ganze Palette an Decodern/Analyzern (siehe Bild Decoder). Christian S. schrieb: > auch was die > Register 0x37 bis 0x3A angeht. Da muss ich mal gucken, im Datenblatt haben die Register ja eine Standardeinstellung. In wie weit muss diese umgestellt werden? In der Rfm69.cpp sind Register 0x37, 0x38 und 0x39 konfiguriert. Ich habe es mal online gestellt: -> https://pastebin.com/DSDnG050 Jetzt gucke ich mal was auf den SPI-Leitungen passiert, wenn ich 1) den Tiny programmiere 2) der Code auf dem Tiny ausgeführt wird OHNE angeschlossenes RFM69 3) der Code auf dem Tiny ausgeführt wird mit angeschlossenes RFM69
:
Bearbeitet durch User
Ich habe jetzt mal meinen Code drauf gespielt und dabei die Leitungen MOSI MISO SCK überwacht (siehe Bild SPI beim Programmieren). Als ich noch die Reset Leitung vom Tiny aufnehmen wollte, gab es Probleme. Ich schätze mal, weil er sich so dauerhaft reseted hat. An meiner Aufnahme wundert mich, dass alle drei Leitungen nach Abschluss der Programmieren auf HIGH gehen. Ist das der Standard beim Tiny?
Ich habe jetzt mal die radio.send-Funktion in den Code eingebaut. Beim Compilieren tritt kein Fehler auf. Aber sobald der Mikrocontroller in der Loop an diese Stelle kommt, scheint er sich aufzuhängen und im Serial-Monitor kommen ganz wirre Zeichen raus, die sich unendlich fortsetzen (siehe Bild Sendefehler). Es ändert nichts, ob das RFM69 angeschlossen ist oder nicht. Weiß einer Rat? Nach Anpassung des Codes konnte ich jetzt dafür sorgen, dass zumindestens die Sendeschleife durchläuft und sich nicht aufhängt (siehe Bild Sendefehler2). Angepasster Code: https://pastebin.com/WmssvknT Jetzt auch die Aufnahmen vom LA der SPI-Leitungen bei Ausführung des Codes (siehe Bilder Großaufnhame LA, Feinaufnahme LA)
:
Bearbeitet durch User
SOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO, ENDLICH GESCHAFFT!!!! ES FUNKTIONIERT MIT DEM ATTINY84 UND DEM rfm69!!!!!!!!!!!!!!!!!!! VIIEEELEN VIELEN DANK HIER AN ALLE!!!!!!!!!!!!!!!! BESONDERER DANK GEHT AN: Arduino Fanboy D. (ufuf) Christian S. (roehrenvorheizer) Carl D. (jcw2)
Ich danke dir für deine lobende Erwähnung. Aber selbst nach mehrfachen lesen des Threads bleibt mir verborgen, wie ich an diesem Verbrechen mitgewirkt haben soll. Ich fühle mich irgendwie unschuldig, bis verwirrt. Außerdem, wenn schon schuldig, dann bleibst du die Lösung schuldig. OK, evtl. gehen dir die Gefühle und Erwartungen anderer am A*sch vorbei. Auch gut, mich solls nicht belasten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.