完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
实现旋转编码器旋转将数据通过串口助手发回电脑显示,帮忙看一下下面的程序问题出在哪里?
#include #define uchar unsigned char #define uint unsigned int ***it Xuan_A = P2^0; ***it Xuan_B = P2^1; ***it Xuan_C = P2^2; uchar i; uchar Counter = 0; uchar Flag = 0; uchar Last_Xuan_B,Current_Xuan_B; uchar T0RH,T0RL; void Delay(int n) { int j; for(; n > 0; n--) { for(j = 0; j < 110; j++); } } void Xuan_Direction() { Last_Xuan_B = Xuan_B; while(!Xuan_A) { Flag = 1; Current_Xuan_B = Xuan_B; } if(1 == Flag) { Flag = 0; if((0 == Last_Xuan_B)&&(1 ==Current_Xuan_B )) { if(Counter<255) { Counter ++; } else { Counter = 0; } } if((1 == Last_Xuan_B)&&(0 ==Current_Xuan_B )) { if(Counter>0) { Counter --; } else { Counter = 255; } } } } void ConfigTimer0(unsigned int ms)//这个函数很重要 { unsigned long tmp; //临时变量 tmp = 11059200 / 12; //定时器计数频率 tmp = (tmp * ms) / 1000; //计算所需的计数值,因为晶振的时间单位是us,转换成ms要除以1000 tmp = 65536 - tmp; //计算定时器重载值 tmp = tmp + 18; //补偿中断响应延时造成的误差 T0RH = (unsigned char)(tmp>>8); //定时器重载值拆分为高低字节 T0RL = (unsigned char)tmp; TMOD &= 0xF0; //清零T0的控制位 TMOD |= 0x01; //配置T0为模式1 TH0 = T0RH; //加载T0重载值 TL0 = T0RL; ET0 = 1; //使能T0中断 TR0 = 1; //启动T0 } void Time0_interrupt() interrupt 1 { TH0 = T0RH; //加载T0重载值 TL0 = T0RL; } void Uart_TX_interrupt() interrupt 4 { if(TI == 1) { TI = 0; SBUF = Counter; } } void ConfigUART(unsigned int baud) { SCON = 0x50; //配置串口为模式1 TMOD &= 0x0F; //清零T1的控制位 TMOD |= 0x20; //配置T1为模式2 TH1 = 256 - (11059200/12/32)/baud; //计算T1重载值 TL1 = TH1; //初值等于重载值 ET1 = 0; //禁止T1中断 ES = 1; //使能串口中断 TR1 = 1; //启动T1 } void main() { EA = 1; ConfigTimer0(10); ConfigUART(9600); while(1) { Xuan_Direction(); Delay(500); } } |
|
相关推荐
4个回答
|
|
这是那种芯片?头文件好像不全,还有定时器初值有没问题 ?!
|
|
|
|
|
|
|
|
|
|
|
|
思路是没啥问题的,就看是哪里出错了,你可以分开调试,屏蔽发送数据部门,调试编码器 调通了以后再屏蔽编码器部分,调试数据发送部分即可
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
277 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
368 浏览 0 评论
766 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
592 浏览 0 评论
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12039 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 10:06 , Processed in 0.890165 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号