Beispiel #1
0
int main (void)
{
        SysCtlClockSet (SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_25MHZ);

        configureUART ();
        printf ("cpu-gauge.\r\n");

        // Enable the GPIO port that is used for the on-board LED.
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
        GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3);

//        // USB config : Enable the GPIO peripheral used for USB, and configure the USB pins.
//        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
//        SysCtlGPIOAHBEnable(SYSCTL_PERIPH_GPIOD);
//        GPIOPinTypeUSBAnalog(GPIO_PORTD_AHB_BASE, GPIO_PIN_4 | GPIO_PIN_5);

//        ButtonsInit();
//        printf ("Buttons OK.\r\n");

        motorInit ();
        printf ("Motor initialized.\r\n");

        printf ("Test sequence : +40 steps.\r\n");
        motorRun (40);
        printf ("Test sequence : -40 steps.\r\n");
        motorRun (-40);
        printf ("Test sequence : OK.\r\n");
        SysCtlDelay (DELAY_COEFFICIENT_SCD / 10);

        uint8_t ui8ButtonsChanged, ui8Buttons;

        while (1) {
                ButtonsPoll(&ui8ButtonsChanged, &ui8Buttons);

                if (ui8ButtonsChanged) {
                        if(ui8Buttons & LEFT_BUTTON)
                        {
                                printf ("pressed\r\n");
                        }
                        else {
                                printf ("released\r\n");
                        }
                }
        }
}
Beispiel #2
0
void processCmdMsg(pb_istream_t *streamPtr) {
	pb_istream_t substream;
	gCmdParamNum = 0;
	double degSec;
	double pos;
	EMotorDirection dir;

	if (pb_make_string_substream(streamPtr, &substream)) {
		MotorMsg_Cmd motorCmd = MotorMsg_Cmd_init_zero;
		motorCmd.params.funcs.decode = &motorCmdParamCallback;
		//motorCmd.params.arg = (void *) (&motorCmd.action);

		pb_decode(&substream, MotorMsg_Cmd_fields, &motorCmd);
		pb_close_string_substream(streamPtr, &substream);

		switch (motorCmd.action) {
			case MotorMsg_Cmd_Action_UNKNOWN:
				break;
			case MotorMsg_Cmd_Action_BRAKE:
				motorBrake();
				break;
			case MotorMsg_Cmd_Action_FREEWHEEL:
				motorFreewheel();
				break;
			case MotorMsg_Cmd_Action_RUN:
				degSec = getMotorParam(MotorMsg_Cmd_Param_Id_VELOCITY, gCmdParams, gCmdParamNum);
				dir = (getMotorParam(MotorMsg_Cmd_Param_Id_CLOCKWISE, gCmdParams, gCmdParamNum) != 0.0) ? eClockwise : eCounterClockwise;
				motorRun(dir, degSec);
				break;
			case MotorMsg_Cmd_Action_GOTO_POS:
				pos = getMotorParam(MotorMsg_Cmd_Param_Id_POSITION, gCmdParams, gCmdParamNum);
				degSec = getMotorParam(MotorMsg_Cmd_Param_Id_VELOCITY, gCmdParams, gCmdParamNum);
				dir = (getMotorParam(MotorMsg_Cmd_Param_Id_CLOCKWISE, gCmdParams, gCmdParamNum) != 0.0) ? eClockwise : eCounterClockwise;
				motorGotoPos(dir, pos, degSec);
				break;
		}
	}
}