Exemplo n.º 1
0
void init_MDB(void){
PWM_Init();
PWM_AddPins(PWM_PORTY04);// this is J5-03 on the uno or RD3 (this is the same one we use for slave select in SPI mode)
PWM_SetFrequency(PWM_500HZ);
TRISDbits.TRISD10 = 0; // this is the one that we'll use for direction
DIRECTION = FORWARD;
}
Exemplo n.º 2
0
uint8_t initMotors() {
    PWM_Init();
    PWM_SetFrequency(PWM_FREQ);

    //set I/O direction for h-bridge directions pins
    RIGHT_MOTOR_PIN_DIR = OUTPUT;
    LEFT_MOTOR_PIN_DIR = OUTPUT;

    return (PWM_AddPins(LEFT_MOTOR_ENABLE | RIGHT_MOTOR_ENABLE));
}
Exemplo n.º 3
0
void Drive_Init(void)
{
	// Configure PWM components
	PWM_Init();
	PWM_SetFrequency(PWM_BOT_FREQUENCY);

	// Add motor pins
	PWM_AddPins(MOTOR_PINS_LEFT_EN | MOTOR_PINS_RIGHT_EN | MOTOR_PINS_LIFT_EN);

	// Configure direction pins
	IO_PortsSetPortOutputs(MOTOR_PINS_PORT, MOTOR_PINS_RIGHT_DIR | MOTOR_PINS_LEFT_DIR |
		MOTOR_PINS_LIFT_DIR);
}
Exemplo n.º 4
0
void main()
{
    u16 tmp;
    u8 tmp8, tmp8_A;
    static tCANMsg RxMsgBuff;

    CLK_Init(CLK_HSE);
    disableInterrupts();
    GPIO_Init();
    TIM4_Init();
//	TIM2_Init();
    TIM1_Init();
    ADC_Init();
    /* Configure CAN - Interface		*/

    CAN_Init();												// init CAN - interface

    enableInterrupts();

    CAN_Start();

    CAN_TxMsg1.Length = 4;
    CAN_TxMsg1.Xtd = false;
    CAN_TxMsg1.rtr = false;
    CAN_TxMsg1.ID = 0x280;
    CAN_TxMsg1.Data[0] =0 ;
    CAN_TxMsg1.Data[1] =0;


    //PWM_SetFrequency(1);
    do {


        if (	IsCAN_MSG1_Send()) {
            tmp = ADC_GetValue(ADC_REV_CHANEL);
            tmp = tmp *24;
            if ( tmp < 100 ) {
                OIL_PRESS = false;
            } else {
                OIL_PRESS = true;
            }

            CAN_TxMsg1.Data[3] =(u8)(tmp >> 8) ;
            CAN_TxMsg1.Data[2] =(u8)(tmp & 0x00FF);
            CAN_Write(&CAN_TxMsg1);
        }

        if ( IsSpeedAdjustTime()) {
            tmp = ADC_GetValue(ADC_SPEED_CHANEL);
            tmp = tmp * 10;
            tmp = tmp/ 34;
            PWM_SetFrequency(tmp);
            // 1023 = 300 Hz
        }

        /*	if(	CAN_GetMsg(&RxMsgBuff)== RET_OK){

        		if (RxMsgBuff.Xtd ){		// EID
        			tmp8 =  (u8)(RxMsgBuff.timeStamp >>3) & 0xE0U;
        			if (RxMsgBuff.rtr) tmp8 |= 0x10;
        			tmp8 |= (RxMsgBuff.Length & 0x0F);
        			tmp8_A = (RxMsgBuff.ID>>24) & 0x001f;
        			tmp8_A |= (RxMsgBuff.FilterID << 5);
        			USART_SendBytesMessage (CAN_MSG_EXT_1, tmp8,(u8)((RxMsgBuff.timeStamp) & 0x00FF), tmp8_A ,(RxMsgBuff.ID>>16) & 0x00ffU);

        			USART_SendBytesMessage (CAN_MSG_EXT_2, (RxMsgBuff.ID>>8) & 0x00ffU,RxMsgBuff.ID & 0x00ffU,RxMsgBuff.Data[0], RxMsgBuff.Data[1] );
        			if (RxMsgBuff.Length > 2)
        				USART_SendBytesMessage (CAN_MSG_EXT_3, RxMsgBuff.Data[2], RxMsgBuff.Data[3], RxMsgBuff.Data[4], RxMsgBuff.Data[5]);
        			if (RxMsgBuff.Length > 6 )
        				USART_SendBytesMessage (CAN_MSG_EXT_4, RxMsgBuff.Data[6], RxMsgBuff.Data[7],0,0);
        		}else{									// standard ID
        			tmp8 =  (u8)(RxMsgBuff.timeStamp >>3) & 0xE0U;
        			if (RxMsgBuff.rtr) tmp8 |= 0x10;
        			tmp8 |= (RxMsgBuff.Length & 0x0F);
        			tmp8_A = (RxMsgBuff.ID>>8) & 0x007f;
        			tmp8_A |= (RxMsgBuff.FilterID << 3);
        			USART_SendBytesMessage (CAN_MSG_STD_1, tmp8,(u8)((RxMsgBuff.timeStamp) & 0x00FF), tmp8_A ,RxMsgBuff.ID & 0x00ff);
        			if (RxMsgBuff.Length > 0)
        				USART_SendBytesMessage (CAN_MSG_STD_2, RxMsgBuff.Data[0], RxMsgBuff.Data[1], RxMsgBuff.Data[2], RxMsgBuff.Data[3]);
        			if (RxMsgBuff.Length > 4 )
        				USART_SendBytesMessage (CAN_MSG_STD_3, RxMsgBuff.Data[4], RxMsgBuff.Data[5], RxMsgBuff.Data[6], RxMsgBuff.Data[7]);
        		}
        	}*/


        /** LED Flashing **/
        if (GetLedState()) {
            LED_ON;
        } else {
            LED_OFF;
        }

    } while (1);

}
Exemplo n.º 5
0
uint8_t initLauncherMotor() {
    PWM_Init();
    PWM_SetFrequency(PWM_FREQ);

    return (PWM_AddPins(LAUNCHER_MOTOR_ENABLE));
}