#include "mbed.h"
#include
AnalogOut daval(p18); // 10bit
int main()
{
const int n = 20;
float delta=2*M_PI/n;
short table[n];
float x=0;
for(int i=0; i<n; i++){
table[i] = (short)(32767*(cosf(x)+1.0));
x += delta;
}
while(true)
{
for(int i=0; i<n; i++ ){
daval.write_u16(table[i]);
wait_us(50);
}
}
}
|
1
2
3
4 アナログ出力
5
6
7
8 2πをn分割する。n=20
9 2πをn分割した値
10 一周期n個のcos表
11
12
13 floatは時間がかかりそうなので、shortにし、
14 かつ、配列を用いる。shortは65535が最大だから、
15 最大32767*2を用いる
16
17
18
19 shortの配列の内容をDAで出力。
20 50μs×20個=1000μs=1ms→1kHz
21
22
23
|