C:UsersxxxAppDataLocalTempbuilddc26d9afde90342664dd0ce09ea68f9a.tmpsketchunusedbehavior.cpp:25:19: fatal error: robot.h: No such file or directory
#include "robot.h"
^
compilation terminated.
SETUP
ADCMan: found calib data
---ADC calib---
ADC sampleRate=38462
AD0 min=9999 max=-9999 diff=-19998 ofs=0
AD1 min=9999 max=-9999 diff=-19998 ofs=0
AD2 min=9999 max=-9999 diff=-19998 ofs=0
AD3 min=9999 max=-9999 diff=-19998 ofs=545
AD4 min=9999 max=-9999 diff=-19998 ofs=392
AD5 min=9999 max=-9999 diff=-19998 ofs=510
AD6 min=9999 max=-9999 diff=-19998 ofs=0
AD7 min=9999 max=-9999 diff=-19998 ofs=0
AD8 min=9999 max=-9999 diff=-19998 ofs=0
AD9 min=9999 max=-9999 diff=-19998 ofs=511
AD10 min=9999 max=-9999 diff=-19998 ofs=0
AD11 min=9999 max=-9999 diff=-19998 ofs=0
AD12 min=9999 max=-9999 diff=-19998 ofs=0
AD13 min=9999 max=-9999 diff=-19998 ofs=0
AD14 min=9999 max=-9999 diff=-19998 ofs=0
AD15 min=9999 max=-9999 diff=-19998 ofs=0
matchSignal size=24
subSample=4
capture size=192
IMU error: no calib data
--------
accOfs=0.00,0.00,0.00
accScale=2.00,2.00,2.00
comOfs=0.00,0.00,0.00
comScale=2.00,2.00,2.00
--------
initL3G4200D
gyro read error
gyro read error
gyro read error
loadSaveErrorCounters: read
loadSaveErrorCounters addrstop=422
loadUserSettings
EEPROM USERDATA: NO EEPROM USER DATA
PLEASE CHECK AND SAVE YOUR SETTINGS
t 0 l 0 v0 ERR spd 0 0 0 sen 0 0 0 bum 0 0 dro 0 0 son 0 yaw 0 pit 0 rol 0 bat 0.0 chg 0.0 0.0 imu 0 adc 0 Ardumower
loadSaveRobotStats: read
loadSaveRobotStats addrstop=822
t 0 l 0 v0 FORW spd 25 25 0 sen 0 0 0 bum 0 0 dro 0 0 son 0 yaw 0 pit 0 rol 0 bat 0.0 chg 0.0 0.0 imu 0 adc 0 Ardumower
START
Ardumower 1.0a4-Azurit
Config: Ardumower
press...
d for menu
v to change console output (sensor counters, values, perimeter etc.)
sen_counters
Error: motor mow fault
t 0 l 0 v0 ERR spd 0 0 0 sen 0 0 0 bum 0 0 dro 0 0 son 0 yaw 0 pit 0 rol 0 bat 0.0 chg 0.0 0.0 imu 0 adc 0 Ardumower
Error: motor mow fault
DS1307 data1 error
RTC data error!
RTC date received: Sun 01.01.2013
t 0 l 0 v0 ERR spd 0 0 0 sen 0 0 0 bum 0 0 dro 0 0 son 0 yaw 0 pit 0 rol 0 bat 25.8 chg 0.0 0.0 imu 0 adc 0 Ardumower
Error: motor mow fault
Error: motor mow fault
Error: motor mow fault
Error: motor mow fault
Error: motor mow fault
Error: motor mow fault
t 1 l 0 v0 ERR spd 0 0 0 sen 0 0 0 bum 0 0 dro 0 0 son 0 yaw 0 pit 0 rol 0 bat 25.7 chg 0.0 0.0 imu 0 adc 3 Ardumower
Error: motor mow fault
#define pinMotorMowPWM 2 // M1_IN1 mower motor PWM pin (if using MOSFET, use this pin)
#define pinMotorMowDir 6 // M1_IN2 mower motor Dir pin (if using MOSFET, keep unconnected)
#define pinMotorMowSense A3 // M1_FB mower motor current sense
#define pinMotorMowFault 8 // M1_SF mower motor fault (if using MOSFET/L298N, keep unconnected)
#define pinMotorMowEnable 7 // EN mower motor enable (if using MOSFET/L298N, keep unconnected)
AlexanderG schrieb:Hi Alex,
You seem to have done everything correctly - can you measure the pin using an oscilloscope just to make sure you have a valid signal there?
Keep up the good work!
Regards,
Alexander
// enable interrupts
#ifdef __AVR__
// R/C
PCICR |= (1<<PCIE0);
PCMSK0 |= (1<<PCINT4);
PCMSK0 |= (1<<PCINT5);
PCMSK0 |= (1<<PCINT6);
PCMSK0 |= (1<<PCINT1);
// odometry
PCICR |= (1<<PCIE2);
PCMSK2 |= (1<<PCINT20);
PCMSK2 |= (1<<PCINT21);
PCMSK2 |= (1<<PCINT22);
PCMSK2 |= (1<<PCINT23);
// mower motor speed sensor interrupt
//attachInterrupt(5, rpm_interrupt, CHANGE);
PCMSK2 |= (1<<PCINT19);
#else
// Due interrupts
attachInterrupt(pinOdometryLeft, PCINT2_vect, CHANGE);
attachInterrupt(pinOdometryLeft2, PCINT2_vect, CHANGE);
attachInterrupt(pinOdometryRight, PCINT2_vect, CHANGE);
attachInterrupt(pinOdometryRight2, PCINT2_vect, CHANGE);
attachInterrupt(pinRemoteSpeed, PCINT0_vect, CHANGE);
attachInterrupt(pinRemoteSteer, PCINT0_vect, CHANGE);
attachInterrupt(pinRemoteMow, PCINT0_vect, CHANGE);
attachInterrupt(pinRemoteSwitch, PCINT0_vect, CHANGE);
//attachInterrupt(pinMotorMowRpm, rpm_interrupt, CHANGE);
attachInterrupt(pinMotorMowRpm, PCINT2_vect, CHANGE);
#endif
PCMSK2 |= (1<<PCINT18);
PCICR |= (1<<PCIE2);
// interrupt function for PCINT2
ISR(PCINT2_vect, ISR_NOBLOCK){
... interrupt code ...
}
volatile unsigned long counter = 0;
ISR(PCINT2_vect, ISR_NOBLOCK){
if (digitalRead(10) == HIGH) counter++;
}
void loop(){
Serial.println(counter);
delay(1000);
}