8H8K64U学习打卡及心得 | 建议提前送实验箱,尽早进入32位51时代
正在听陈教授的课,已经是第4节了,讲得挺清楚,开始打卡!后面慢慢补充心得和疑问,谢谢!第五节课视频中,因为没声明xdata,所以数组超出内置RAM范围,应该报错,我当时编译后没报错,魔术棒查看也没有改成大的RAM空间,原来是我没有把这个c文件加入USER文件夹内导致的。看来单独c文件编译时并不管硬件环境,加入工程后才发现RAM受限制。但这里我也发现了问题,Memory窗口抓图可见,赋值到FFH后就没有了:
原因是i也受限于unsigned char,所以这里我建议陈老师将i改为unsigned int,这样后面的单元就可以赋值到300个了:
pursuing 发表于 2023-12-14 11:35
第五节课视频中,因为没声明xdata,所以数组超出内置RAM范围,应该报错,我当时编译后没报错,魔术棒查看也 ...
哈哈 确实有点小bug 不过老师应该只是举例data区大小和xdata区的使用 cofmilk 发表于 2023-12-14 14:52
哈哈 确实有点小bug 不过老师应该只是举例data区大小和xdata区的使用
是的,主要是说明data和xdata区别 陈教授讲课高屋建瓴,确实是为初学者着想,比如第八课汇编语言时,Keil的调试讲得很详细,甚至包括一些小技巧,学生结合实操后也更加加深印象。所以后面的汇编也没必要讲太详细,确实是“师傅领进门,修行在个人”了。谢谢!{:4_174:} 第十课时陈教授讲到《手册》第12章中断入口地址有很多,最后到了LCM中断的地址01DBH了,所以后面ORG 从0200H开始。但我看最新的STC8H手册,现在已经是第13章了,最后又加了一个Timer11的中断入口地址021BH,以后ORG设到0220H开始呗{:4_165:} 今天听课《第十二集 单片机C语言程序设计导入二》时,教程里直接运行程序就可以了,我遇到了怪事,运行后提示大量 error C202: 'P4M1': undefined identifier,显然是没认出来P4M1,肯定是头文件没添加进来。然后我右击文件名,open document,仍然可以打开stc8h.h文件。再在打开的标签上右击,选open Containing Folder,打开所在目录,没有问题。教程中stc8h.h文件第一句都是:
#ifndef __STC8H_H__
#define __STC8H_H__
而我这里却是:
#ifndef __STC90C5xAD_H__
#define __STC90C5xAD_H__
而文件名却是stc8h.h,确实有问题。后来发现大小也不对,只有7k,而同一目录的stc8g.h都有63k,搜索P4M1也没有找到!最后在STC-ISP软件内复制了最新的stc8h.h,替换后好了。、
不过这个事有点奇怪,按理说 \Keil_v5\C51\INC\STC 下的文件应该是导入STC时产生的,不应该有问题的。 另外,请问陈教授的讲课课件有共享的吗?谢谢。 正在看第十三课中断部分,了解到了现在的STC也象ARM一样有了中断挂起,两个中断同时来时就不会丢失了,这就很强大了。而且,陈教授提到生物采集时数据量大,实时性要好,涉及ADC,再通过串口传到计算机,这两个事情都耗时,如果ADC优先级高,通信总被打断,好像通信不可靠,如果串口优先级高,则ADC采集不均匀,后来陈教授问能否添加DMA功能,STC就加入该功能了,这样ADC开始采集后不需要反复中断CPU,只是到一定程度时,通过DMA中断一次性处理多个数据。看得出来,STC确实急用户之所急,想用户之所想,真正在解决客户的痛点、难点!为这样的民族企业点赞!希望STC开发出越来越强大的国产芯片! 陈教授还提到,调用子程序可能涉及外设,主程序中调用键盘扫描程序,最好用一个定时器的方式去定时,而不是随时在检测键盘,如果主程序其他模块占用了大量的时间,则键盘会不灵敏!以前我设计的温湿度计是空闲时扫描按键,有时可能因为18B20时序导致触摸个别时候无响应,但定时器的话可能会破坏18B20的时序,是不是只能靠RTOS了呢?