完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嘿,我在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中的特殊功能?当做
|
|
相关推荐
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;返回数据;}
|
|
|
|
|
|
谢谢,但是如何在启动时初始化SPI?我有一个BITBANG方法,我测试了在23 LC512没有运气,并为它的12位坏,但…
|
|
|
|
|
|
RTFM只有几个MSSP寄存器才能安装;如果我记得正确的话,SSPSTAT和SSPCONx。对于12位接口,只要做两个8位SPI传输,您的DAC甚至不能告诉它正在做。
|
|
|
|
|
|
我用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,无活性假丝酵母}
|
|
|
|
|
|
哪一个DAC,顺便问一下?
|
|
|
|
|
|
在写入之后应该出现虚拟读取。
|
|
|
|
|
|
嗯,我猜是这样工作的。但是明天我会检查一下。手册里有一个例子,看起来他们好像在发送数据之前已经读过了。但是明天我会检查的。谢谢。
|
|
|
|
|
|
不幸的是,我以前见过这种编码风格——假读是为了清除BF位,以防它以前没有被清除。然后执行写操作。如果它们反过来,读操作必须在“.”之后进行,这样才有用。苏珊
|
|
|
|
|
|
我想我以前也看到过。是的,BF位必须测试数据传输完成(或缓冲器满),然后从SSPBUF读取数据。此外,在从SSPBUF中丢弃数据时不需要使用哑变量:
|
|
|
|
|
|
我正在使用MCP4921i,仍然在尝试通过位邦方法,但仍然没有运气,代码接缝看起来不错。但是通过范围查看引脚SCL应该显示一个具有50%占空比的很好的PWM信号,但它不是……有活动,但不是50%,我的旧飞利浦pm3110范围,显示没有活动的RC5,SDO引脚,但它在其他引脚。pic18f252运行在4mhz与PLL。如何加入变量配置和数据变量?
|
|
|
|
|
|
SW SPI最好从您的代码开始看起来足够好,并且没有完美的50%的占空比不是问题,所以可能还有其他事情发生……
|
|
|
|
|
|
谢谢,我用“HS”代替“HSPLL”降低了FOSC的速度,但是我仍然没有看到一个好的时钟脉冲,我的范围是10mhz,应该显示它。连接两个变量的最佳方式是什么?当做
|
|
|
|
|
|
好的,你想加入什么?你的意思是向DAC发送2个单词?我会移动这个
|
|
|
|
|
|
我试图改变你的建议,移动CS和LDAC。检查mcp4921数据表,第19页修改代码,它应该可以工作,但该死…它仍然不工作我在较低的4配置比特移位?这应该是对的,还是?
|
|
|
|
|
|
我的意思是CS的东西应该在发送功能之外。
|
|
|
|
|
|
这应该行得通,对吧?
|
|
|
|
|
|
是的,可能
|
|
|
|
|
|
这应该意味着,你在低位移位,比在低位12位移位,我或多或少标记了74hc595移位寄存器的代码,这应该是正确的。这应该是正确的!但是!我在MCP4921的引脚8上有0伏,我把mcp4921换成另一个,得到同样的结果。我使用2x pic18f2523和微芯片AC162049 U模块:)
|
|
|
|
|
|
啊,我明白了!在我的任务中,我更倾向于将这2个值合并成一个16位的值并继续运行。但是,好吧,但是现在,你的SDO工作正常吗?
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1123浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:25 , Processed in 1.076056 second(s), Total 79, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2030