Beispiel #1
0
void MyArduboy::beginNoLogo(void)
{
    boot();
    if (pressed(UP_BUTTON)) {
        sendLCDCommand(OLED_ALL_PIXELS_ON);
        setRGBled(255, 255, 255);
        power_timer0_disable();
        while (true) {
            idle(); // infinite loop
        }
    }
    pTunes->initChannel(PIN_SPEAKER_1);
    pinMode(PIN_SPEAKER_2, OUTPUT); // trick
    myAudio.begin();
}
Beispiel #2
0
static void on_ble_write(ble_cch_t * p_cch_service, ble_evt_t * p_ble_evt)
{
    // Decclare buffer variable to hold received data. The data can only be 32 bit long.
    uint32_t data_buffer;
    
		// Pupulate ble_gatts_value_t structure to hold received data and metadata.
    ble_gatts_value_t rx_data;
    rx_data.len = sizeof(uint32_t);
    rx_data.offset = 0;
    rx_data.p_value = (uint8_t*)&data_buffer;
    
    // Check if write event is performed on our characteristic or the CCCD
    if(p_ble_evt->evt.gatts_evt.params.write.handle == p_cch_service->charSTEP_handles.value_handle)
    {
        // Get stepper data
				sd_ble_gatts_value_get(p_cch_service->conn_handle, p_cch_service->charSTEP_handles.value_handle, &rx_data);
				
				if (rx_data.p_value[POSITION_byte] > MAX_STEPS)
					positionIwantToGo = MAX_STEPS;
				
				positionIwantToGo = rx_data.p_value[POSITION_byte];
				
				speed = SPEED_LIMIT + (0xff - rx_data.p_value[SPEED_byte]) * 40;
				//speed = rx_data.p_value[SPEED_byte] * 40;	
		}
		else if(p_ble_evt->evt.gatts_evt.params.write.handle == p_cch_service->charRGB_handles.value_handle)
    {
        // Get RGB data
				sd_ble_gatts_value_get(p_cch_service->conn_handle, p_cch_service->charRGB_handles.value_handle, &rx_data);
				
				if (rx_data.p_value[RED_byte] > 100)
					rx_data.p_value[RED_byte] = 100;
				if (rx_data.p_value[GREEN_byte] > 100)
					rx_data.p_value[GREEN_byte] = 100;
				if (rx_data.p_value[BLUE_byte] > 100)
					rx_data.p_value[BLUE_byte] = 100;
				
				setRGBled(rx_data.p_value[RED_byte], rx_data.p_value[GREEN_byte], rx_data.p_value[BLUE_byte]);		
		}
		else if(p_ble_evt->evt.gatts_evt.params.write.handle == p_cch_service->charR_handles.value_handle)
    {
        // Get RED data
				sd_ble_gatts_value_get(p_cch_service->conn_handle, p_cch_service->charR_handles.value_handle, &rx_data);
				
				if (rx_data.p_value[MLED_byte] > 100)
					rx_data.p_value[MLED_byte] = 100;
				
				setMled(rx_data.p_value[MLED_byte]);
		}
		else if(p_ble_evt->evt.gatts_evt.params.write.handle == p_cch_service->charSTEP_handles.cccd_handle)
    {
        // Get stepper cccd data
        sd_ble_gatts_value_get(p_cch_service->conn_handle, p_cch_service->charSTEP_handles.cccd_handle, &rx_data);
    }
		else if(p_ble_evt->evt.gatts_evt.params.write.handle == p_cch_service->charRGB_handles.cccd_handle)
    {
        // Get RGB cccd data
        sd_ble_gatts_value_get(p_cch_service->conn_handle, p_cch_service->charRGB_handles.cccd_handle, &rx_data);
    }
		else if(p_ble_evt->evt.gatts_evt.params.write.handle == p_cch_service->charR_handles.cccd_handle)
    {
        // Get R cccd data
        sd_ble_gatts_value_get(p_cch_service->conn_handle, p_cch_service->charR_handles.cccd_handle, &rx_data);
    }
}