高级会员
主题
帖子
积分938
阅读权限30
注册时间2013-2-9
最后登录1970-1-1
在线时间 小时
|
上了一个选择编码开关,照抄了一段代码,结果出大事鸟,求解
先声明楼主论坛菜鸟一枚
AVR16 中断0接了一个旋转编码器,抄的网上的代码,选择编码开关转动的时候后反映,就是结果不正常,上代码先- ISR(INT0_vect)
- {
- GICR =0x00;
- if (Bit_Get(PIND,2)==1)
- {
- if (Bit_Get(PIND,1)==0)
-
- {
- sumx++;
- }else
- {
- sumx--;
- }
- }else
- {
- if (Bit_Get(PIND,1)==0)
-
- {
- sumx++;
- }else
- {
- sumx--;
- }
-
- }
- GIFR |= (1 << INTF1) | (1 << INTF0);
- GICR =0xC0;//0xC0 */
复制代码 main函数里面这样处理的
- itoa(sumx,strr,10);
- display_string_5x7(5,1,strr)
复制代码 变量定义这样的- uint sumx =1;
- uchar strr[25]={0};
复制代码 然后奇怪的事情就来了,选择编码开关的时候数字会变,但是哪个结果啊,变化的也太大了吧,按理应该是转一下加或者减一的,结果差了十万八千里,实在搞不明白了,上坛子请教,
个人感觉是 int 转uchar不对,但是不知道该怎么处理 |
|