Exemple #1
0
uint8 campbell_cond_start(){
    /* Start of all components */
    ADC_DelSig_1_Start();
    
    ADC_DelSig_1_SelectConfiguration(1u, 1u);
   
    Comp_1_Start();
    Comp_2_Start();
    Comp_3_Start();
    //Comp_4_Start();
    
    AMux_1_Start();   
    //AMuxSeq_1_Next();  // Connect Mux to first 
    
    Sample_Hold_1_Start();
    Sample_Hold_2_Start();
    Sample_Hold_3_Start();
    //Sample_Hold_4_Start();
    
    PWM_1_Start();
    PWM_2_Start();
    
    Cond_Vout_Write(0u);
    
    return 1u;
}
Exemple #2
0
void play_song(int* notebuf, int* accidentalsbuf, int* octavebuf, int length) {
	PWM_1_Start();
	PWM_2_Start();
	PWM_3_Start();
	PWM_4_Start();
	for (int i = 0; i < length; i+=4) {
		PWM_1_WriteCompare((note_lengths[note_lookup[notebuf[i]]+accidentalsbuf[i]]/2)>>octavebuf[i]);
		PWM_1_WritePeriod(note_lengths[note_lookup[notebuf[i]]+accidentalsbuf[i]]>>octavebuf[i]);
		PWM_1_WriteCounter(0);
		PWM_2_WriteCompare((note_lengths[note_lookup[notebuf[i+1]]+accidentalsbuf[i]]/2)>>octavebuf[i+1]);
		PWM_2_WritePeriod(note_lengths[note_lookup[notebuf[i+1]]+accidentalsbuf[i]]>>octavebuf[i+1]);
		PWM_2_WriteCounter(0);
		PWM_3_WriteCompare((note_lengths[note_lookup[notebuf[i+2]]+accidentalsbuf[i]]/2)>>octavebuf[i+2]);
		PWM_3_WritePeriod(note_lengths[note_lookup[notebuf[i+2]]+accidentalsbuf[i]]>>octavebuf[i+2]);
		PWM_3_WriteCounter(0);
		PWM_4_WriteCompare((note_lengths[note_lookup[notebuf[i+3]]+accidentalsbuf[i]]/2)>>octavebuf[i+3]);
		PWM_4_WritePeriod(note_lengths[note_lookup[notebuf[i+3]]+accidentalsbuf[i]]>>octavebuf[i+3]);
		PWM_4_WriteCounter(0);
		if (Keypad_1_Status_Reg_Read() & 0x10) break;
		CyDelay(TEMPO_MS);
	}
	PWM_1_Stop();
	PWM_2_Stop();
	PWM_3_Stop();
	PWM_4_Stop();
}
Exemple #3
0
void main()
{
    uint8 ButtonPressFlag = 0;
	int32 temp=0;
	uint32 lowest=24,i;
	uint32 increment=2;
	uint32 battery_volts;
	volatile uint32 counter=0;
    
	CYGlobalIntDisable;
	/* Intitalize hardware */
  	LEDControlReg_Write(0xff);         /* Turn off the LEDs on PORT2(pin 0-3) and PORT4 pin(0-3) */
    PSU_Enable_Write(3);
//	AMux_1_Start();                 /* Enable THe analog mux input to the ADC */
//    AcclADC_Start();                /* Start ADC */
//    VDAC8_1_Start();                /* Start and configure the VDAC used to measure the Thermistor */
//    VDAC8_1_SetRange(VDAC8_1_RANGE_1V);
//    VDAC8_1_SetValue(200 );

	PWM_0_Start();
	PWM_1_Start();
	PWM_2_Start();
	PWM_3_Start();
	
	PWM_4_Start();
	PWM_5_Start();
	PWM_6_Start();
	PWM_7_Start();
	
//	VBATT_ADC_Start();
	//VBATT_ADC_StartConvert();
//	VBATT_ADC_Stop(); //debugging

//	UART_1_Start();
	I2C_1_Start();
	I2C_1_EnableInt();
	
	Button_ClearInterrupt();
	ALERT2_ClearPending();
	ALERT1_ClearPending();
	
	ALERT1_StartEx(ALERT1_ISR);	

	Button_Pressed_StartEx(Button_Press_ISR);
	ALERT2_StartEx(ALERT2_ISR);

	
	CYGlobalIntEnable;              /* Enable global interrupt */
    
	I2C_1_MasterClearStatus();
		while(set_ina226(CH1)!=CYRET_SUCCESS);
		while(set_tmp100(CH1)!=CYRET_SUCCESS);


	while(1)
	{
		if(0)
		//if(Status_Reg_1_Read()&1)
		{
			read_tmp100(CH1);
			read_ina226(CH1);
		}
		LEDControlReg_Write(((uint8)~(PSU_Enable_Read())));
		for(i=0;i<65000;i++);
		LEDControlReg_Write(((uint8)~(PSU_Enable_Read())) & ~(1<<7));
		for(i=0;i<65000;i++);
//		CyPmSaveClocks();
//		CyPmSleep(PM_SLEEP_TIME_NONE, PM_SLEEP_SRC_PICU);
//        CyPmRestoreClocks();
        
//		battery_volts = VBATT_ADC_GetResult32();
	
		if(reset==1)
		{
	
		for(i=0;i<65000;i++); //delay for half a second.
		PSU_Enable_Write(3); //Both PSU ON
		I2C_1_Start();
		I2C_1_EnableInt();
		while(set_ina226(CH1)!=CYRET_SUCCESS);
		while(set_tmp100(CH1)!=CYRET_SUCCESS);
		reset=0;
		}
		
	}
	
	
	


    while(1)
    {
        /* Calculate the current board temperature */
        temp = Thermistor_TemperatureCompute() / 10; //we get 24.1 as 241. We drop fractionals.
		uint32 barrels_above= (temp-lowest)/increment;
		if(temp<=lowest) barrels_above=0; //negative temperatures are too low!
		if(barrels_above>8) barrels_above=8;
		LEDControlReg_Write(1<<barrels_above);
		
    }
}
Exemple #4
0
//Configuration for the clutch
void init_pwro(void)
{
	//PWM2: Clutch
	PWM_2_Start();
	PWM_2_WriteCompare(0);	//Start at 0%
}
Exemple #5
0
int main()
{
    CyGlobalIntEnable; /* Enable global interrupts. */
    //PWM_1_Start();
    PWM_1_Start();
    USBUART_Start(0,USBUART_5V_OPERATION);
    while(!USBUART_bGetConfiguration()){}
    USBUART_CDC_Init();
    
    int count = 0;
    uint8 buff[64];
    buff[0] = 0;
    
    int up_b = 0;
    int left_b = 0;
    int down_b = 0;
    int right_b = 0;
    int PWM_count = 0;
    int judge_count = 0;
    
    while(1)//main loop
    {   
        if(0 != USBUART_GetConfiguration())
        {
            
            if(0 != USBUART_DataIsReady())
            {
                count = USBUART_GetAll(buff);
                if( count != 0){
                    
                    while(0 == USBUART_CDCIsReady()){}
                    
                    PWM_1_Start();
                    PWM_2_Start();
                    PWM_3_Start();
                    PWM_4_Start();
              
                    USBUART_PutData(buff,count);
                    CyDelay(500);
                    USBUART_PutCRLF(); 
                    
                    switch(buff[0]){
                        case 48:
                            up_b = 1;
                            break;
                        case 49:
                            up_b = 0;
                            break;
                        case 50:
                            left_b = 1;
                            break;
                        case 51:
                            left_b = 0;
                            break;
                        case 52:
                            right_b = 1;
                            break;
                        case 53:
                            right_b = 0;
                            break;
                        case 54:
                            down_b = 1;
                            break;
                        case 55:
                            down_b = 0;
                            break;
                        
                        default:
                        break;
                        
                    }   
            judge_count = up_b + left_b + down_b +right_b;
               
                    
                    if(judge_count == 0){
                        PWM_count = 0;
                    }
            if(judge_count == 1){//押されているボタンの数が1つの場合
                if(PWM_count <=100){
                    PWM_count++;
                    int i = 0;
                    for(i=0;i<=100;i++){}
                }else{}
                    
                    if(up_b == 1){//上ボタン
                    
                    PWM_1_WriteCompare(PWM_count);
                    PWM_1_direction_Write(1);
                    PWM_2_WriteCompare(PWM_count);
                    PWM_2_direction_Write(1);
                    PWM_3_WriteCompare(PWM_count);
                    PWM_3_direction_Write(1);
                    PWM_4_WriteCompare(PWM_count);
                    PWM_4_direction_Write(1);
                    }
                    if(left_b == 1)

                    PWM_1_WriteCompare(PWM_count);
                    PWM_1_direction_Write(0);
                    PWM_2_WriteCompare(PWM_count);
                    PWM_2_direction_Write(1);
                    PWM_3_WriteCompare(PWM_count);
                    PWM_3_direction_Write(1);
                    PWM_4_WriteCompare(PWM_count);
                    PWM_4_direction_Write(0);

                    }
                    if(right_b == 1)

                    PWM_1_WriteCompare(PWM_count);
                    PWM_1_direction_Write(1);
                    PWM_2_WriteCompare(PWM_count);
                    PWM_2_direction_Write(0);
                    PWM_3_WriteCompare(PWM_count);
                    PWM_3_direction_Write(0);
                    PWM_4_WriteCompare(PWM_count);
                    PWM_4_direction_Write(1);

                    }
                    if(down_b == 1)
                    PWM_1_WriteCompare(PWM_count);
                    PWM_1_direction_Write(0);
                    PWM_2_WriteCompare(PWM_count);
                    PWM_2_direction_Write(0);
                    PWM_3_WriteCompare(PWM_count);
                    PWM_3_direction_Write(0);
                    PWM_4_WriteCompare(PWM_count);
                    PWM_4_direction_Write(0);

                    }
        }else if(judge_count == 2){//2個の場合
            if(PWM_count <=100){
                    PWM_count++;
                    int i = 0;
                    for(i=0;i<=100;i++){}
                }else{}
                
                if(up_b == 1&& left_b == 1){
                    PWM_1_WriteCompare(0);
                    PWM_1_direction_Write(0);
                    PWM_2_WriteCompare(PWM_count);
                    PWM_2_direction_Write(1);
                    PWM_3_WriteCompare(PWM_count);
                    PWM_3_direction_Write(1);
                    PWM_4_WriteCompare(0);
                    PWM_4_direction_Write(0);
                }else if(up_b == 1&& right_b == 1){
                    PWM_1_WriteCompare(PWM_count);
                    PWM_1_direction_Write(1);
                    PWM_2_WriteCompare(0);
                    PWM_2_direction_Write(0);
                    PWM_3_WriteCompare(0);
                    PWM_3_direction_Write(0);
                    PWM_4_WriteCompare(PWM_count);
                    PWM_4_direction_Write(1);
                }else if(down_b == 1&& right_b==1){
                    PWM_1_WriteCompare(0);
                    PWM_1_direction_Write(0);
                    PWM_2_WriteCompare(PWM_count);
                    PWM_2_direction_Write(0);
                    PWM_3_WriteCompare(PWM_count);
                    PWM_3_direction_Write(0);
                    PWM_4_WriteCompare(0);
                    PWM_4_direction_Write(0);
                }else if(down_b == 1&& left_b == 1){
                    PWM_1_WriteCompare(PWM_count);
                    PWM_1_direction_Write(0);
                    PWM_2_WriteCompare(0);
                    PWM_2_direction_Write(0);
                    PWM_3_WriteCompare(0);
                    PWM_3_direction_Write(0);
                    PWM_4_WriteCompare(PWM_count);
                    PWM_4_direction_Write(0);
                }
        }else{}
            
                    //if(USBUART_IsLineChanged() == USBUART_LINE_CODING_CHANGED || USBUART_IsLineChanged() == USBUART_LINE_CONTROL_CHANGED)
                    //{
                    USBUART_PutCRLF(); 
                        //CyDelay(100);
                    //}
                    if(64 == count){
                        while(0 == USBUART_CDCIsReady()){}
                        //sent zero packet
                        USBUART_PutData(NULL,0);
                    }
                    //LED_Write(0);
                 
            }
           
}