int main(void)
{
    int i;
    int j = 0;
    clock_setup();
    usart_setup();
    printf("hi guys!\n");
    adc_setup();
    dac_setup();
    gpio_set_mode(LED_DISCOVERY_USER_PORT, GPIO_MODE_OUTPUT_2_MHZ,
                  GPIO_CNF_OUTPUT_PUSHPULL, LED_DISCOVERY_USER_PIN);

    while (1) {
        uint16_t input_adc0 = read_adc_naiive(0);
        uint16_t target = input_adc0 / 2;
        dac_load_data_buffer_single(target, RIGHT12, CHANNEL_2);
        dac_software_trigger(CHANNEL_2);
        uint16_t input_adc1 = read_adc_naiive(1);
        printf("tick: %d: adc0= %u, target adc1=%d, adc1=%d\n",
               j++, input_adc0, target, input_adc1);
        gpio_toggle(LED_DISCOVERY_USER_PORT, LED_DISCOVERY_USER_PIN); /* LED on/off */
        for (i = 0; i < 1000000; i++) /* Wait a bit. */
            __asm__("NOP");
    }

    return 0;
}
Пример #2
0
int main(void)
{
	int i;
	int j = 0;
	clock_setup();
	usart_setup();
	printf("hi guys!\n");
	adc_setup();
	dac_setup();

	/* green led for ticking */
	gpio_mode_setup(LED_DISCO_GREEN_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,
			LED_DISCO_GREEN_PIN);

	while (1) {
		uint16_t input_adc0 = read_adc_naiive(0);
		uint16_t target = input_adc0 / 2;
		dac_load_data_buffer_single(target, RIGHT12, CHANNEL_2);
		dac_software_trigger(CHANNEL_2);
		uint16_t input_adc1 = read_adc_naiive(1);
		printf("tick: %d: adc0= %u, target adc1=%d, adc1=%d\n",
			j++, input_adc0, target, input_adc1);

		/* LED on/off */
		gpio_toggle(LED_DISCO_GREEN_PORT, LED_DISCO_GREEN_PIN);

		for (i = 0; i < 1000000; i++) { /* Wait a bit. */
			__asm__("NOP");
		}
	}

	return 0;
}
/*--------------------------------------------------------------------*/
void tim2_isr(void)
{
	if (timer_get_flag(TIM2, TIM_SR_CC1IF))
	{
/* Clear compare interrupt flag. */
		timer_clear_flag(TIM2, TIM_SR_CC1IF);

/* Set the next DAC output - saw-tooth.*/
		if (++cntr > 255)
		{
			cntr=0;
/* Toggle PC0 just to keep aware of activity and frequency. */
			gpio_toggle(GPIOC, GPIO0);
		}
/* Trigger the DAC then load the next value */
		dac_software_trigger(CHANNEL_D);
		dac_load_data_buffer_single(v[cntr], RIGHT8, CHANNEL_D);
	}

}
Пример #4
0
void set_napeti(uint16_t napeti)
{
    napeti*=(0xFFF/(15));
    dac_load_data_buffer_single(napeti, RIGHT12, CHANNEL_1);//do kanalu 1 DAC nahrat hodnotu (j)
	dac_software_trigger(CHANNEL_1); //pustit hodnotu ven
}