×¢²á µÇ¼
µç×Ó¹¤³ÌÊÀ½ç-ÂÛ̳ ·µ»ØÊ×Ò³ EEWORLDÊ×Ò³ ƵµÀ EE´óѧÌà ÏÂÔØÖÐÐÄ Datasheet רÌâ
breeze_iµÄ¸öÈË¿Õ¼ä https://home.eeworld.com.cn/space-uid-1492951.html [ÊÕ²Ø] [¸´ÖÆ] [·ÖÏí] [RSS]
ÈÕÖ¾

¡¾Follow meµÚ¶þ¼¾µÚ3ÆÚ¡¿À©Õ¹ÈÎÎñ£º¼òµ¥Ðźŷ¢ÉúÆ÷

ÒÑÓÐ 297 ´ÎÔĶÁ2024-12-15 23:51 |¸öÈË·ÖÀà:RA6M5

ÔÚDACÈÎÎñÖÐÒѾ­ÊµÏÖÁËÈý½Ç²¨ºÍÕýÏÒ²¨µÄÉú³É£¬±¾´Î½áºÏ°´¼ü£¬Ê¹Óð´¼üÑ¡ÔñÊä³öµÄ²¨ÐΡ£

ÐÂÔöÈ«¾Ö±äÁ¿wave_select£¬µ±wave_select==0£¬Êä³öÈý½Ç²¨£¬µ±wave_select==1£¬Êä³öÕýÏÒ²¨¡£

ÔÚ100msÈÎÎñɨÃè°´¼ü£¬¸ù¾Ý°´Ïµİ´¼üÇл»²¨ÐΣ»ÔÚ10msÈÎÎñÖÐÊä³ö²¨ÐΡ£

void Timer_10msTask()
{
    if(wave_select==0)
    {
        DAC_output();
    }
    else
    {
        DAC_output_Sinewave();
    }
}

void Timer_100msTask()
{
    static uint8_t led1level=BSP_IO_LEVEL_LOW;
    if(keyscan(KEY_S1)==1)
//    if(Key_Scan(KEY_S1)==1)
    {
        wave_select=0;
//        led1level=!led1level;
//        g_ioport.p_api->pinWrite(g_ioport.p_ctrl,LED1_BLUE,led1level);
//        R_BSP_SoftwareDelay(350,BSP_DELAY_UNITS_MILLISECONDS);
    }else if(keyscan(KEY_S2)==1)
    {
        wave_select=1;
    }

}

Èý½Ç²¨ºÍÕýÏÒ²¨ÊµÏÖ´úÂëÈçÏÂ

/*
 * dac.c
 *
 *  Created on: 2024Äê12ÔÂ12ÈÕ
 *      Author: LXL
 */
#include "dac.h"
#include <math.h>
#include <stdint.h>
#include "haL_data.h"

uint16_t gs_dac_value=0;
uint64_t gs_starttime=0;
uint16_t DAC_value=0;
extern uint64_t gs_dwTick;

fsp_err_t DAC_Init(void)
{
     fsp_err_t status = R_DAC_Open(&g_dac0_ctrl, &g_dac0_cfg);
     status = R_DAC_Write(&g_dac0_ctrl, 0);

     status = R_DAC_Start(&g_dac0_ctrl);
     gs_starttime = gs_dwTick;
     return status;
}

fsp_err_t DAC_output(void)
{
    static int16_t a=1;
    gs_dac_value=(uint16_t)(gs_dac_value+a);
    if(gs_dac_value>=0x0FFF)
//    if (gs_dac_value >= 0x5)
    {
        a = -1;
    }
    else if (gs_dac_value == 0)
    {
        a = 1;
    }

    fsp_err_t status = R_DAC_Write(&g_dac0_ctrl, gs_dac_value);

    return status;
}

fsp_err_t DAC_output_Sinewave(void)
{
    fsp_err_t ret;
    uint64_t currenttime=gs_dwTick;
//    uint16_t DAC_value=0;
    uint64_t t_ms=(currenttime-gs_starttime);       //ms
    double t_s   =(double)t_ms/1000;//(double)(t_ms/1000);
    DAC_value=(uint16_t)((sin(t_s)+1)/2*4096);
    gs_dac_value=DAC_value;
    ret = R_DAC_Write(&g_dac0_ctrl, gs_dac_value);
    return ret;
}

ʵÑéÏÖÏó£º

½«dacÊä³öÒý½ÅºÍLED3ʹÓöŰîÏßÁ¬½Ó¡£

20241215_234136

¿ÉÒÔ¿´µ½£¬ÔËÐкóĬÈÏÊä³öÈý½Ç²¨£¬°´Ï°´¼üs2Çл»ÎªÕýÏÒ²¨£¬°´Ï°´¼üs1Çл»»ØÈý½Ç²¨£¬ÓÉÓÚ´Óled¿´ÏÖÏó²¢²»Ã÷ÏÔ£¬ËùÒÔʹÓÃfreemasterÖ±½Ó²é¿´gs_dac_valueµÄÖµ£¬ÕâÑùÖ±¹ÛһЩ¡£

±¾ÎÄÀ´×ÔÂÛ̳£¬µã»÷²é¿´ÍêÕûÌû×ÓÄÚÈÝ¡£

ÆÀÂÛ (0 ¸öÆÀÂÛ)

facelist doodle Í¿Ñ»°å

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔÆÀÂÛ µÇ¼ | ×¢²á

ÈÈÃÅÎÄÕÂ