用户工具

站点工具


ocrobot:alpha:d21g18a:tutorial03

DAC使用

测试波形如下:

#include <Arduino.h>   // required before wiring_private.h
#include "wiring_private.h" // pinPeripheral() function
 int sinv[200]; 
const float pi=3.14;
//Serial2用于打印调试信息 11-RX 10-TX
Uart Serial2 (&sercom1, 11, 10, SERCOM_RX_PAD_0, UART_TX_PAD_2);
void SERCOM1_Handler()
{
  Serial2.IrqHandler();
}
 
void setup() {
 
//  pinMode(A0, OUTPUT);        //DAC输出时不需要设置此项
  analogWriteResolution(10);  //10位分辨率
  analogWrite(A0, 0);         
 
 
  Serial2.begin(115200);
  pinPeripheral(10, PIO_SERCOM);
  pinPeripheral(11, PIO_SERCOM);
 delay(1000);
 
    for (int i=0;i<200;++i)  //计算正弦波200点
    {
        sinv[i]=(int)(512.0*sin(2*pi/200*i)+512); //满幅度3.3v 中心位置1024/2=512
        delay(10);
         Serial2.print("i= "); 
        Serial2.println(i);
        Serial2.println(sinv[i]);
    }
   Serial2.println( sin(2*pi/200)); 
 
}
 
int i;
void loop() {
  int output; 
  analogWrite(A0, sinv[i]);
  delayMicroseconds(1);
  i++;
  if(i>=200)
  i=0;      
}
ocrobot/alpha/d21g18a/tutorial03.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1