找回密码
 立即注册
楼主: 一笔***

【已解决】PCA模块问题求助,PCA3不能开启

[复制链接]

该用户从未签到

46

主题

3039

回帖

6851

积分

超级版主

积分
6851
发表于 2023-7-17 11:51:32 | 显示全部楼层
一笔长空 发表于 2023-7-15 16:25
感谢梁老师,现在知道原理后不知道具体代码怎么写,比如我现在需要将ID号加密后写入到程序空间1000H开始 ...

放在跟程序不重叠的地址,就不需要在程序中预留位置。用CODE指针读出来即可。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

9

回帖

58

积分

注册会员

积分
58
发表于 2023-9-7 13:28:00 | 显示全部楼层
梁老师您好!看到您的回复大家的问题很感动,也非常感谢我们国产芯片有您这样专业温暖的工程师们在辛勤付出,感恩!
现在我有个项目之前是用silabs公司c8051f121芯片做的,现在要国产化,看到咱们stc8a8k64d4也有PCA功能就选了这个芯片,但是程序移植过来以后发现,PCA的功能可以正常实现,在PCA中断(最高优先级)中用查询方式AD采样也OK,但是,我程序中还有T2、T3中断,包括AD中断在一起运行时好像就进不去了,我在想是不是咱们的STC芯片硬件自动把中断标志位清零后导致较低优先级的中断无法进入?关键是在KEIL调试程序时看不到一些相关的寄存器,只有最基本的一些寄存器,请问一下梁老师这个怎么解决?谢谢!

点评

MCU各个中断都是相互独立的,互不干扰。 某个中断函数硬件自动把本中断标志位清零,不会影响其余的任何中断标志。 硬件仿真可以看到相关寄存器的值,可以仿真看看。 项目程序尽量不要频繁使用查询方式使用外设,建议  详情 回复 发表于 2023-9-7 17:57
回复 支持 反对 送花

使用道具 举报

该用户从未签到

552

主题

9492

回帖

1万

积分

管理员

积分
14059
发表于 2023-9-7 16:09:41 | 显示全部楼层
截图202309071609361234.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

552

主题

9492

回帖

1万

积分

管理员

积分
14059
发表于 2023-9-7 16:11:26 | 显示全部楼层
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

3039

回帖

6851

积分

超级版主

积分
6851
发表于 2023-9-7 17:57:50 | 显示全部楼层
mrlgboys 发表于 2023-9-7 13:28
梁老师您好!看到您的回复大家的问题很感动,也非常感谢我们国产芯片有您这样专业温暖的工程师们在辛勤付出 ...

MCU各个中断都是相互独立的,互不干扰。
某个中断函数硬件自动把本中断标志位清零,不会影响其余的任何中断标志。
硬件仿真可以看到相关寄存器的值,可以仿真看看。
项目程序尽量不要频繁使用查询方式使用外设,建议在PCA中断里启动ADC,ADC中断里读取ADC结果即可。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

9

回帖

58

积分

注册会员

积分
58
发表于 2023-9-18 09:18:47 | 显示全部楼层
梁工 发表于 2023-9-7 17:57
MCU各个中断都是相互独立的,互不干扰。
某个中断函数硬件自动把本中断标志位清零,不会影响其余的任何中 ...

好的,谢谢梁工。另外还有一个问题想请教:

最近在用STC8A8K64D的SPI外接DAC,程序在运行到 DAC_VAL = 0xA0; SPDAT = DAC_VAL;时,SPDAT 没有变成0xA0,而是直接变成0xFF,请问是什么原因?

其中:SPCTL = 0xD4;SPSTAT = 0x00

我用示波器看SPCTL 的 CPOL位在设为0时,SCLK从高电平变成低电后就一直没有变化,写SPDAT时应该出的时钟信号也没有出,不知道为什么,可以帮忙解答一下吗?谢谢!

点评

你怎么知道SPI发送寄存器SPDAT没有变成0xA0? 用示波器看看其实际发出的数据。  详情 回复 发表于 2023-9-18 12:02
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

3039

回帖

6851

积分

超级版主

积分
6851
发表于 2023-9-18 12:02:01 | 显示全部楼层
mrlgboys 发表于 2023-9-18 09:18
好的,谢谢梁工。另外还有一个问题想请教:

最近在用STC8A8K64D的SPI外接DAC,程序在运行到 DAC_VAL = 0 ...

你怎么知道SPI发送寄存器SPDAT没有变成0xA0?注意,读SPDAT读到的是接收的数据,不是发送的数据。
用示波器看看其实际发出的数据。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

552

主题

9492

回帖

1万

积分

管理员

积分
14059
发表于 2023-9-18 12:56:42 | 显示全部楼层
先搞定仿真,再研究其他,否则浪费时间
工欲善其事必先利其器 !!!
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

9

回帖

58

积分

注册会员

积分
58
发表于 2023-9-18 15:19:20 | 显示全部楼层
梁工 发表于 2023-9-18 12:02
你怎么知道SPI发送寄存器SPDAT没有变成0xA0?注意,读SPDAT读到的是接收的数据,不是发送的数据。
用示波 ...

梁工您好!感谢您的回复,我用示波器看了一下,程序运行时MOSI口一直是高电平,请问是不是SPI口坏掉了?

点评

一般来说,没受到过压冲击的话,MCU没那么容易坏的。可以用STC官方的例程测试。  详情 回复 发表于 2023-9-18 16:05
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

3039

回帖

6851

积分

超级版主

积分
6851
发表于 2023-9-18 16:05:00 | 显示全部楼层
mrlgboys 发表于 2023-9-18 15:19
梁工您好!感谢您的回复,我用示波器看了一下,程序运行时MOSI口一直是高电平,请问是不是SPI口坏掉了? ...

一般来说,没受到过压冲击的话,MCU没那么容易坏的。可以用STC官方的例程测试。
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-18 14:35 , Processed in 0.080187 second(s), 71 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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