完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题:DI口输入一组400*24bit的数据,如何使用单片机实现:前40*24bit的数据不接收,剩下的数据全部转给DO口输出,并保证输出数据的准确性,不乱码。输入数据0码高电平时间为300ns左右。
已尝试方法: 使用单片机型号为STC15W105 #include * @Brief IO口初始化 * @param null * @retval null */ ***it DI = P3^2; ***it DO = P3^3; void IO_Init(void) { P3M0 |= 0x08; //P33设置成推挽输出 P3M1 &= 0xF7; P3M1 |= 0x04; //P32设置成高阻输入 P3M0 &= 0xFB; DO=0; //把P32脚设置为下降沿触发方式 //P32是外部中断0输入脚 IT0 = 1; //外部中断0触发方式,=1下降沿触发,=0双边沿触发 EX0 = 1; //允许外部中断0中断 } bit flag; unsigned int count;//定时器计数值 /*void timer0Init(void) //300微秒@33.1776MHz { AUXR &= 0x7F; //定时器时钟12T模式 TMOD &= 0xF0; //设置定时器模式 TL0 = 0xC3; //设置定时初值 TH0 = 0xFC; //设置定时初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 } */ void main(void) { count=0; IO_Init(); //初始化 EA = 1; //开中断 while(1) { if(flag) //当过了20*24bit之后,输出等于输入 { DO = DI; } ; } } void Int0_Routine(void) interrupt 0 //外部中断0服务函数 { if(DI ==1) { DO =1; } else { DO=0; } if(count<960) { count++; }else { flag=1; } TR0=0; Timer0Init(); //计时300us则复位 } void Timer0_Routine(void) interrupt 1 //定时器0中断服务函数 { count = 0; flag=0; } 发现处理速度过慢,导致输出数据0码高电平时间达到us级,全被判为1码 尝试过不进行计数,直接将DO=DI,使DI口所有数据全部转发,发现一部分0码数据的高电平时间仍达到了600ns,导致乱码。 希望有大佬能帮忙解答 |
|
相关推荐
2个回答
|
|
////尽量与0判断
if(count)--count; //init count 9xx else DO=DI; /*kxxl ;if(count<960) 0000 C3 CLR C 0001 E500 R MOV A,count+01H 0003 94C0 SUBB A,#0C0H 0005 E500 R MOV A,count 0007 6480 XRL A,#080H 0009 9483 SUBB A,#083H 000B 5002 JNC ?C0024 000D 0500 R INC DI ;if(count) 000F E500 R MOV A,count+01H 0011 4500 R ORL A,count 0013 6002 JZ ?C0026 0015 1500 R DEC DO */ ////Timer0Init()又是一堆指令,感觉赋初值就行,如果其它地方没影响 TL0 = 0xC3; 其他的就不太清楚了 |
|
|
|
DI数据也能分组输入了吗?你怎么确定每组和每组之间的分隔呢
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
657 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
640 浏览 0 评论
753 浏览 1 评论
546 浏览 0 评论
关于RT-Thread studio添加freemodbus控件失败的问题
910 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11653 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:56 , Processed in 0.522280 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号