Пример #1
0
static inline void init_tank_arm_sensors() {
    HallFlags hall_flags = HALL_INVERTED | HALL_PULLUP;
    EncoderFlags encoder_flags = ENCODER_PULLUPS;

	tank_socket.front = newHallSensor(1, 4, pinB4, hall_flags);
	tank_socket.back = newHallSensor(1, 3, pinB3, hall_flags);
	tank_socket.encoder = newEncoder(1, 5, 6, pinB5, pinB6, encoder_flags);

    tank_joint.front = newHallSensor(0, 4, pinA4, hall_flags);
    tank_joint.back = newHallSensor(0, 3, pinA3, hall_flags);
    tank_joint.encoder = newEncoder(0, 5, 6, pinA5, pinA6, encoder_flags);
}
Пример #2
0
void setUp() {
	initPinChangeInterrupts();
	init_fake_port();
	TEST_ASSERT_EQUAL(0, countEncoders());
	encoder = newEncoder(0, 0, 1, testPin1, testPin2, 0);
	TEST_ASSERT(IsValid(encoder));
	TEST_ASSERT(encoderValid(encoder));
	TEST_ASSERT_EQUAL(1, countEncoders());
	expectClean = TRUE;
}
Пример #3
0
/*
 * Call this from the default Initialize function.
 * After, be sure to reinitialize each motor you will be using on your robot.
 */
void riceBotInitialize() {

	Motor *MOTDTFrontRight = newMotor();
	Motor *MOTDTFrontMidRight = newMotor();
	Motor *MOTDTMidRight = newMotor();
	Motor *MOTDTBackRight = newMotor();
	Motor *MOTDTFrontLeft = newMotor();
	Motor *MOTDTFrontMidLeft = newMotor();
	Motor *MOTDTMidLeft = newMotor();
	Motor *MOTDTBackLeft = newMotor();

	Motor *MOTARMFront = newMotor();
	Motor *MOTARMRight = newMotor();
	Motor *MOTARMLeft = newMotor();
	Motor *MOTARMTopRight = newMotor();
	Motor *MOTARMBottomRight = newMotor();
	Motor *MOTARMTopLeft = newMotor();
	Motor *MOTARMBottomLeft = newMotor();

	Motor *MOTCOL = newMotor();

	printf("%d\n\r", imeInitializeAll());
	imeReset(IMEARMLEFT);
	imeReset(IMEARMRIGHT);
	encDTLeft = encoderInit(0, 0, false);
	encDTRight = encoderInit(0, 0, false);
	encARMLeft = encoderInit(0, 0, false);
	encARMRight = encoderInit(0, 0, false);

	Ricencoder *ENCDT = newEncoder();
	Ricencoder *ENCARM = newEncoder();
	//	gyro = gyroInit(0, 196);
	//	gyroVal = gyroGet(gyro);

	analogCalibrate(POTARMLeft);
	analogCalibrate(POTARMRight);
	analogCalibrate(POTARMFront);

	Pid *PidARMLeft = newPid();
	Pid *PidARMRight = newPid();
	Pid *PidARMFront = newPid();
}
Пример #4
0
void test_two_encoders() {
	Encoder encoder2 = newEncoder(0, 2, 3, testPin3, testPin4, 0);
	TEST_ASSERT(encoderValid(encoder2));

	TEST_ASSERT_EQUAL(0, encoderState(encoder));
	TEST_ASSERT_EQUAL(0, encoderState(encoder2));

	trigger(TRUE);
	trigger(TRUE);
	TEST_ASSERT_EQUAL(2*4, encoderState(encoder));
	TEST_ASSERT_EQUAL(0, encoderState(encoder2));

	invokePinChangeInterrupt(0, _BV(2));
	invokePinChangeInterrupt(0, _BV(2) | _BV(3));
	invokePinChangeInterrupt(0, _BV(3));
	invokePinChangeInterrupt(0, 0);
	TEST_ASSERT_EQUAL(2*4, encoderState(encoder));
	TEST_ASSERT_EQUAL(1*4, encoderState(encoder2));	

	encoder2 = destroyEncoder(encoder2);
	TEST_ASSERT_FALSE(IsValid(encoder2));
}