AI8051U实验箱库函数应用,T0/T1/T2/T3/T4,普通I/O口都支持的外部中断
AI8051U实验箱库函数应用,
T0/T1/T2/T3/T4,T11
普通I/O口都支持的外部中断
普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:
老师要例程,AI8051U-8BIT:
P34和P35,下降沿中断
1,汇编
2,C
3,库函数
中断发生后,串口送哪个字符出来,好知到发生啥事了
谁帮将测试过的程序贴上来
老师要例程,AI8051U-32BIT:
P34和P35,下降沿中断
1,C
2,库函数
中断发生后,串口送哪个字符出来,好知到发生啥事了
谁帮将测试过的程序贴上来
(基于寄存器版本)
(32bit版本)
(8bit版本)
程序已经经过测试,下载时需要设置时钟为22.1184Mhz方便串口使用。
本例子基于独立的IO中断,对P34和P35的下降沿进行捕获,并且使用串口返回信息。
注意:32bit版本直接使用了超过31号的中断地址,如果报错超过31号中断地址的话
可以使用Keil 中断拓展插件
深圳国芯人工智能有限公司-工具软件
以下是测试图片:
普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:
能来个用 8H库函数的 AI8051U 版本 ?
能来个用 32G库函数的 AI8051U 版本 ?
神农鼎 发表于 2025-1-8 08:56
能来个用 8H库函数的 AI8051U 版本 ?
能来个用 32G库函数的 AI8051U 版本 ?
使用STC32G库函数的独立例程版本
已经测试通过:(下载时钟需要设置为22.1184Mhz)
注意:新增库函数set_ioint_mode为变长函数,最后一个参数需要为Pin_End。可以一次性设置一个模式下的所有IO(是否连续都可以)
/******************** IOINT配置 ********************/
void IOINT_config(void)
{
set_ioint_mode(down_edge_mode,Pin34,Pin35,Pin_End);//设置Pin34,Pin35为下降沿触发
set_ioint_mode(en_int,Pin34,Pin35,Pin_End);//使能Pin34,Pin35的IOINT功能
}这样也是可以的,设置步骤是先设置模式,然后打开对应端口的中断使能。
其他有关IOINT的功能也已经支持,详请查阅“STC32G_IOINT.h” 普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:
能再来个用 8H库函数的 Ai8051U 版本 ?
神农鼎 发表于 2025-1-8 15:22
普通I/O口都支持的外部中断,实验例程,基于AI8051U实验箱:
能再来个用 8H库函数的 Ai8051U 版本 ?
STC8H版本的库函数测试通过,可以在AI8051U的8bit模式上直接使用
注意事项:
STC8H/AI8051U(8bit)模式在开启LX51链接器的时候,不能使用超过31号中断。
所以超过31号中断的需要借用13号中断进行跳转。
具体可以参见文件内的isr.asm文件。
给力 郭天祥 发表于 2025-1-9 10:01
给力
郭老师,有关8H库函数中,定时器例程不能使用问题:
更改库函数中config.h中引用的头文件为AI8051U即可,
因为底层的定时器3/4部分定义不同,T11部分稍后修改完成后上传
更改后测试通过例程
兄弟,不能那么容易改,因为我的代码中还有很多其它AI8051里没有的东东,已经打补丁打了不少了,直接代替我原来的功能又不能用了,你告诉我,AI8051中定时器3和4与8H的定时器3和4相关的头文件中哪些不同,我单独修改 郭天祥 发表于 2025-1-9 17:58
兄弟,不能那么容易改,因为我的代码中还有很多其它AI8051里没有的东东,已经打补丁打了不少了,直接代替我 ...
具体更改在STC8H.h头文件中
搜索T4T3M寄存器,替换为:
sfr T4T3M =0xdd;即可
另外,给出加入了T11部分的STC8H库函数(AI8051U专用,仍然使用STC8H的头文件形式,T11在STC8H.h的168行处进行增加)
在AI8051U(8bit模式)试验箱上测试通过。
页:
[1]
2