controlMotor() kan gebruikt worden om de motoren van de Crane aan te sturen.
In de lijst boven controlMotor() zie je welke motor genummerd is aan welk cijfer. Deze keuze kan voor number ingevuld worden. Bij value wordt de nieuwe waarde van de bit verwacht. Als deze UIT moet vul je oxoo in en als deze AAN moet vul je 0x01 in.
/* Fill in the right number
* 1: Turn counterclockwise
* 2: Turn clockwise
* 3: Move out
* 4: Move int
* 5: Move down
* 6: Move up
*/
void controlMotor(int number, int value)
{
switch (number)
{
case 1:
OutputDataEncoder->byDigitalOut1 ^= (-value ^ OutputDataEncoder->byDigitalOut1) & (1UL << 0); // Turn counterclockwise
break;
case 2:
OutputDataEncoder->byDigitalOut1 ^= (-value ^ OutputDataEncoder->byDigitalOut1) & (1UL << 1); // Turn clockwise
break;
case 3:
OutputDataEncoder->byDigitalOut1 ^= (-value ^ OutputDataEncoder->byDigitalOut1) & (1UL << 3); // Move out
break;
case 4:
OutputDataEncoder->byDigitalOut0 ^= (-value ^ OutputDataEncoder->byDigitalOut0) & (1UL << 6); // Move in
break;
case 5:
OutputDataEncoder->byDigitalOut0 ^= (-value ^ OutputDataEncoder->byDigitalOut0) & (1UL << 4); // Move down
break;
case 6:
OutputDataEncoder->byDigitalOut0 ^= (-value ^ OutputDataEncoder->byDigitalOut0) & (1UL << 5); // Move up
break;
default:
break;
}
}