Example #1
0
int main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    CYGlobalIntEnable; /* Uncomment this line to enable global interrupts. */

    IDAC8_1_Start();

    IDAC8_2_Start();

    CyDelay(1000);

    //Control_Reg_StimSel_Write(STIM_POS);
    for(;;)
    {

        IDAC8_1_SetValue(DAC_V1); //set vdac
        Control_Reg_StimSel_Write(STIM_POS); //switch mux
        CyDelay(PERIOD_P1);

        IDAC8_1_SetValue(0); //set vdac
        Control_Reg_StimSel_Write(STIM_GROUND); //switch mux
        CyDelay(PERIOD_DELAY);

        IDAC8_2_SetValue(DAC_V2); //set vdac
        Control_Reg_StimSel_Write(STIM_NEG); //switch mux
        CyDelay(PERIOD_P2);

        IDAC8_2_SetValue(0); //set vdac
        Control_Reg_StimSel_Write(STIM_GROUND); //switch mux
        CyDelay(PERIOD_INTERVAL);

        LED_B_Write(~LED_B_Read()); //Toggle LED

    }
}
Example #2
0
File: ui.c Project: JFDuval/FlexSEA
void set_led_rgb(unsigned char r, unsigned char g, unsigned char b)
{
	//No fading, we use 1 or 0 for now. Flipping the sign so x = 1 means ON

	LED_R_Write((r & 0x01)^1);
	LED_G_Write((g & 0x01)^1);
	LED_B_Write((b & 0x01)^1);
}
Example #3
0
//Call this function once in main.c, just before the while()
void init_ricnu_knee(void)
{	
	//FlexSEA-Execute setup:
    //Example:	ctrl.active_ctrl = CTRL_OPEN;	//Open controller
    //Example: motor_open_speed_1(0);			//0% PWM
	ctrl.active_ctrl = CTRL_POSITION;	//Position controller
    motor_open_speed_1(0);			//0% PWM
	Coast_Brake_Write(1);			//Brake (rather than Coast)
	   
    //Position PID gains:
	ctrl.position.gain.P_KP = 22;
	ctrl.position.gain.P_KI = 5;
    
    //Starts off:
	LED_R_Write(1);
	LED_G_Write(1);
	LED_B_Write(1);    
}
Example #4
0
int main()
{
	uint8 i2c_flag = 0;
	uint16 tmp_volt_3v3 = 0, tmp_volt_vg = 0, tmp_volt_vb = 0;
	uint16 extend_error_pulse = 0;
	uint8 togg_eled = 0;
	
	//Initialize and start peripherals:
    init_peripherals();
	
	//Enable global interrupts
	CyGlobalIntEnable;
	
	//Quick test: LED Green when ON
	LED_B_Write(1);
	
	//Test: latch output:
	SW_PSOC_Write(1);
	
    while(1)
    {
		//Update sensor data every 10ms, call safety functions:
		if(flag_tb10ms)
		{
			flag_tb10ms = 0;
			
/*
			//Update shared memory:
			
			tmp_volt_vb = read_vb();
			ezI2Cbuf[MEM_R_VB_SNS_MSB] = (uint8)((tmp_volt_vb & 0xFF00) >> 8);
			ezI2Cbuf[MEM_R_VB_SNS_LSB] = (uint8)(tmp_volt_vb & 0x00FF);
			
			tmp_volt_vg = read_vg();
			ezI2Cbuf[MEM_R_VG_SNS_MSB] = (uint8)((tmp_volt_vg & 0xFF00) >> 8);
			ezI2Cbuf[MEM_R_VG_SNS_LSB] = (uint8)(tmp_volt_vg & 0x00FF);
			
			tmp_volt_3v3 = read_3v3();
			ezI2Cbuf[MEM_R_3V3_SNS_MSB] = (uint8)((tmp_volt_3v3 & 0xFF00) >> 8);
			ezI2Cbuf[MEM_R_3V3_SNS_LSB] = (uint8)(tmp_volt_3v3 & 0x00FF);
			
			ezI2Cbuf[MEM_R_TEMPERATURE] = read_temp();
			
			//ezI2Cbuf[MEM_R_STATUS1]  = STATUS1_GOOD;
			
			//Safety functions:
			
			err_temp = safety_temp(ezI2Cbuf[MEM_R_TEMPERATURE]);
			err_v_3v3 = safety_volt(tmp_volt_3v3, M_3V3_LOW, M_3V3_HIGH);
			err_v_vg = safety_volt(tmp_volt_vg, M_VG_LOW, M_VG_HIGH);
			err_v_vb = safety_volt(tmp_volt_vb, M_VB_LOW, M_VB_HIGH);
			err_discon = safety_disconnection(tmp_volt_vb);
			ezI2Cbuf[MEM_R_STATUS1] = CMB_FLAGS_STATUS1(err_wdclk, err_discon, err_temp, err_v_vb, err_v_vg);
			ezI2Cbuf[MEM_R_STATUS2] = CMB_FLAGS_STATUS2(err_v_3v3);
*/
		}
		
		if(flag_tb_1ms)
		{
			flag_tb_1ms = 0;
			
		}
		
		//EZI2C Write complete
        if (0u != (I2C_1_EzI2CGetActivity() & I2C_1_EZI2C_STATUS_WRITE1))
        {
			//...
			i2c_flag = 1;
			i2c_flag = 0;			
        }
    }
}