发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[问答] 怎么在18f252的XC8中设置硬件SPI?
160 SPI DAC
分享
嘿,我在pic18f252上焊接了一个12位、8引脚的Dip微€€芯片DAC,我正在寻找如何用XC8安装软件。C M/下载/ En/DeVICEDOC/SPI.PDF-但它在汇编程序中。有没有XC8中的一个示例如何将12位泵入DAC?学生同伴。c o.z a/pic-microcontroller-.-with-spi-bus-xc8/i是SPI的新产品,目前还不是很清楚。XC8是否具有已经内置在xc.h中的特殊功能?当做
0
2019-9-29 11:16:48   评论 分享淘帖 邀请回答

相关问题

19个回答
我不知道是否有任何特殊函数,但我使用这些函数来发送和接收SPI 8位数据:void Send_Byte_SPI(unsigned char data_send){unsigned char Read_Dummy;Read_Dummy=SSP1BUF;SSP1BUF=data_send;.(!SSP1STATBITS.BF){}}无符号char读写字节(){无符号CHAR数据=0;SSP1BUF=0;而(!)SSP1STATBITS.BF){}数据=SSPBUF;返回数据;}
2019-9-29 11:24:17 评论

举报

谢谢,但是如何在启动时初始化SPI?我有一个BITBANG方法,我测试了在23 LC512没有运气,并为它的12位坏,但…
2019-9-29 11:43:28 评论

举报

RTFM只有几个MSSP寄存器才能安装;如果我记得正确的话,SSPSTAT和SSPCONx。对于12位接口,只要做两个8位SPI传输,您的DAC甚至不能告诉它正在做。
2019-9-29 11:54:19 评论

举报

我用25LC512工作,他们有相同的皮努特。你必须检查第2.1部分的操作原理。它说:“……数据在SCK的上升沿上计时”,并根据此配置SPI。我猜我的功能会工作得很好,因为两个存储器具有相同的原理:void Init_SPI(){//Thre regiter SSPSTAT SSPCON1 y SSPCON2 SSP1CON1=0;//清除所有regiter prio以设置modeSSP1STAT=0;SSP1STAT=0b10000000;//在数据输出时间SSP1CON1=0b00110001结束时采样的输入数据;启用串行端口,clk的空闲状态是高电平(引脚14总是高),Fosc/64PORTC=0;TRISC3=0;//Salida de Reloj TRISC4=1;//Entrada SDI TRISC5=0;//Salida SDO TRISA3=0;//Salida para Chip Select del RF TRISA5=0;//Salida para el芯片选择de la memoria PIE1bits.SSPIPIE=0;//Deshabilito la i间歇性SSPI,无活性假丝酵母IPR1bits.SSPIP=1;//高先验SSPI,无活性假丝酵母}
2019-9-29 12:06:19 评论

举报

哪一个DAC,顺便问一下?
2019-9-29 12:15:00 评论

举报

在写入之后应该出现虚拟读取。
2019-9-29 12:24:53 评论

举报

嗯,我猜是这样工作的。但是明天我会检查一下。手册里有一个例子,看起来他们好像在发送数据之前已经读过了。但是明天我会检查的。谢谢。
2019-9-29 12:34:06 评论

举报

不幸的是,我以前见过这种编码风格——假读是为了清除BF位,以防它以前没有被清除。然后执行写操作。如果它们反过来,读操作必须在“.”之后进行,这样才有用。苏珊
2019-9-29 12:52:39 评论

举报

我想我以前也看到过。是的,BF位必须测试数据传输完成(或缓冲器满),然后从SSPBUF读取数据。此外,在从SSPBUF中丢弃数据时不需要使用哑变量:
2019-9-29 13:07:36 评论

举报

我正在使用MCP4921i,仍然在尝试通过位邦方法,但仍然没有运气,代码接缝看起来不错。但是通过范围查看引脚SCL应该显示一个具有50%占空比的很好的PWM信号,但它不是……有活动,但不是50%,我的旧飞利浦pm3110范围,显示没有活动的RC5,SDO引脚,但它在其他引脚。pic18f252运行在4mhz与PLL。如何加入变量配置和数据变量?
2019-9-29 13:14:25 评论

举报

SW SPI最好从您的代码开始看起来足够好,并且没有完美的50%的占空比不是问题,所以可能还有其他事情发生……
2019-9-29 13:22:42 评论

举报

谢谢,我用“HS”代替“HSPLL”降低了FOSC的速度,但是我仍然没有看到一个好的时钟脉冲,我的范围是10mhz,应该显示它。连接两个变量的最佳方式是什么?当做
2019-9-29 13:41:57 评论

举报

好的,你想加入什么?你的意思是向DAC发送2个单词?我会移动这个
2019-9-29 13:48:41 评论

举报

我试图改变你的建议,移动CS和LDAC。检查mcp4921数据表,第19页修改代码,它应该可以工作,但该死…它仍然不工作我在较低的4配置比特移位?这应该是对的,还是?
2019-9-29 13:56:09 评论

举报

我的意思是CS的东西应该在发送功能之外。
2019-9-29 14:13:07 评论

举报

这应该行得通,对吧?
2019-9-29 14:22:22 评论

举报

2019-9-29 14:30:54 评论

举报

这应该意味着,你在低位移位,比在低位12位移位,我或多或少标记了74hc595移位寄存器的代码,这应该是正确的。这应该是正确的!但是!我在MCP4921的引脚8上有0伏,我把mcp4921换成另一个,得到同样的结果。我使用2x pic18f2523和微芯片AC162049 U模块:)
2019-9-29 14:42:56 评论

举报

啊,我明白了!在我的任务中,我更倾向于将这2个值合并成一个16位的值并继续运行。但是,好吧,但是现在,你的SDO工作正常吗?
2019-9-29 14:58:40 评论

举报

只有小组成员才能发言,加入小组>>

72个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表