adc.c
来自「我写的针对lpc2141的ucos源码」· C语言 代码 · 共 89 行
C
89 行
#include <LPC214X.h>
#include "type.h"
#include "adc.h"
#include "delay.h"
void adc_init(uint8 ch)
{
switch(ch) {
case 1: AD_SEL(1);
break;
case 2: AD_SEL(2);
break;
case 3: AD_SEL(3);
break;
case 4: AD_SEL(4);
break;
case 6: AD_SEL(6);
break;
case 7: AD_SEL(7);
break;
}
AD0CR|=AD0CR_PDN|0x00000000<<8; //CLKDIV
}
uint16 adc_once()
{
uint32 result;
AD0CR|=AD0CR_START;
do {
result=AD0GDR;
}while( (result & ADDR_DONE_MASK) == 0 );
AD0CR&=~AD0CR_START;
return ADDR_RESULT(result);
}
void dac_triangle()
{
uint16 i;
USE_DAC;
while(1) {
for(i=0;i<1024;i++) {
DACR=DACR_VALUE(i);
//delay(3);
}
for(i=1022;i>0;i--) {
DACR=DACR_VALUE(i);
//delay(3);
}
}
}
//generate sine wave by DAC
void dac_sin()
{
uint16 sin_wave[100]=
{512,544,576,607,639,670,700,730,758,786,
812,838,862,885,906,926,944,960,975,988,
998,1007,1014,1019,1022,1023,1022,1019,1014,1007,
998,987,975,960,944,926,906,885,862,838,
812,786,758,729,700,670,639,607,575,543,
511,479,447,415,384,353,323,293,265,237,
210,185,161,138,117,97,79,63,48,35,
24,16,9,3,0,0,1,4,9,16,
25,36,48,63,79,97,117,139,161,185,
211,237,265,294,323,354,385,416,448,480};
uint16 i;
USE_DAC;
while(1) {
for(i=0;i<100;i++) {
DACR=DACR_VALUE(sin_wave[i]);
delay(1);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?