我正在为 Freedom KL25z 编写 DAC 驱动程序,但它不起作用。我用示波器测试,电压没有上升。
我的配置功能正在使用唯一可用于 KL25 的 DAC channel ...
将示波器电压连接到 PORTE30 引脚,将示波器接地连接到 KL25 GND 引脚。
更新,忘记写文件名和实际问题
这是我的 DACDriver.c 文件
#include "DACDriver.h"
unsigned char bflgSendingData = 0;
unsigned short* wpSetPattern;
unsigned short wSetPatternSize;
void vfnDACInit()
{
SIM_SCGC6 |= SIM_SCGC6_DAC0_MASK;
DAC0_C0 |= DAC_C0_DACRFS_MASK;
PORTE_PCR30 = PORT_PCR_MUX(0);
DAC0_DAT0L = 0x00;
DAC0_DAT0H |= 0x0;
DAC0_DAT1L = 0xFF;
DAC0_DAT1H |= 0xF;
DAC0_C0 |= DAC_C0_DACEN_MASK;
}
void vfnDACSetValue(unsigned short wValue)
{
DAC0_DAT0L = (unsigned char)(wValue & 0xFF);
DAC0_DAT0H = (unsigned char)(wValue >> 8);
}
unsigned char bfnDACDriver(void)
{
vfnDACSetValue(0xFF);
/*This is just a test; in my main, I'm just trying to see an output here.
But the main logic should be like the code below*/
/*if(bflgSendingData){
if(wSetPatternSize){
vfnDACSetValue(wpSetPattern);
wpSetPattern++;
wSetPatternSize--;
}
return 1;
}else{
return 0;
}
*/
}
unsigned char bfnDACSetPattern(unsigned short* wpPattern, unsigned short wPatternSize)
{
if(0 == bflgSendingData){
wpSetPattern = wpPattern;
wSetPatternSize = wPatternSize;
bflgSendingData = 1;
return 1;
}else{
return 0;
}
}
更新,忘记包含此文件
这是我的 DACDriver.h 文件
#ifndef __DACDRIVER_H_
#define __DACDRIVER_H_
#include "derivative.h"
void vfnDACInit(void);
unsigned char bfnDACDriver(void);
unsigned char bfnDACSetPattern(unsigned short* wpPattern, unsigned short wPatternSize);
#endif /* __DACDRIVER_H_ */
这是我的 main.c 文件,它现在只进行了一些测试,所以我可以看到一些输出
#include "DACDriver.h"
int main(void)
{
unsigned char pattern[] = {
0xFF, 0xEF, 0xDF, 0xCF, 0xBF, 0xAF,
0x9F, 0x8F, 0x7F, 0x6F, 0x5F, 0x4F, 0x3F, 0x2F, 0x1F,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A,
0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00};
vfnDACInit();
for(;;) {
bfnDACDriver();
}
return 0;
}
我试图成为最自学成才的人,但我已经没有想法了......
我的主要问题是: 你看到这里有什么错误吗? 我该如何让它发挥作用? 我错过了什么吗?
非常感谢!!
最佳答案
所以我真正的问题是没有看到我的示波器没有正确的电压/时间分辨率,因此可以说是“空”输出。我的司机很好。非常感谢大家回答并对我的问题感兴趣。
关于c - KL25 DAC 驱动器在示波器上显示无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34213587/