Hallo,
ich möchte je nach µC die passenden Register, Bits und Interrupt Vectoren verwenden.
Nur bekomme ich das nicht kompiliert.
Mit den Fehlermeldungen weiß ich nichts so recht anzufangen was wirklich gemeint ist.
Irgendwie kommt er mit der volatilen Variablen oder den ISR Vectoren nicht klar.
Wo liegt mein Fehler?
/*
* Doc_Arduino - german Arduino Forum
* IDE 1.6.12
* Arduino Mega2560
* 14.10.2016
*/
#include <util/atomic.h> // für cli() und sei() mit SREG Sicherung
volatile unsigned long micros_time;
#if defined(__AVR_ATmega2560__)
EIMSK = (1<<INT5) | (1<<INT4);
EICRB = (1<<ISC51) | (1<<ISC41) | (1<<ISC40);
ISR(INT4_vec)
{
micros_time = micros();
}
ISR(INT5_vec)
{
micros_time = micros();
}
#endif
#if defined(__AVR_ATmega328P__)
EIMSK = (1<<INT1) | (1<<INT0);
EICRA = (1<<ISC11) | (1<<ISC01) | (1<<ISC00);
ISR(INT0_vec)
{
micros_time = micros();
}
ISR(INT1_vec)
{
micros_time = micros();
}
#endif
const byte PIN_IN_RISI = 2;
const byte PIN_IN_FALL = 3;
void setup() {
pinMode (PIN_IN_RISI, INPUT_PULLUP);
pinMode (PIN_IN_FALL, INPUT_PULLUP);
}
void loop() {
} // end of loop
Arduino: 1.6.12 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"
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\Datalogger_002.ino.cpp:1:
Datalogger_002:13: error: expected unqualified-id before 'volatile'
EIMSK = (1<<INT5) | (1<<INT4);
^
Datalogger_002:13: error: expected ')' before 'volatile'
Datalogger_002:13: error: expected ')' before 'volatile'
Datalogger_002:14: error: expected unqualified-id before 'volatile'
EICRB = (1<<ISC51) | (1<<ISC41) | (1<<ISC40);
^
Datalogger_002:14: error: expected ')' before 'volatile'
Datalogger_002:14: error: expected ')' before 'volatile'
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:30:0,
from sketch\Datalogger_002.ino.cpp:1:
C:\Users\Worker\AppData\Local\Temp\arduino_modified_sketch_310567\Datalogger_002.ino: In function 'void INT4_vec()':
C:\Users\Worker\AppData\Local\Temp\arduino_modified_sketch_310567\Datalogger_002.ino:16:7: warning: 'INT4_vec' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr]
ISR(INT4_vec)
^
C:\Users\Worker\AppData\Local\Temp\arduino_modified_sketch_310567\Datalogger_002.ino: In function 'void INT5_vec()':
C:\Users\Worker\AppData\Local\Temp\arduino_modified_sketch_310567\Datalogger_002.ino:21:7: warning: 'INT5_vec' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr]
ISR(INT5_vec)
^
exit status 1
expected unqualified-id before 'volatile'