智能车制作

标题: 分享一个小工具用小按键和5110液晶来修改所有的参数 [打印本页]

作者: qinlu123    时间: 2012-9-2 16:12
标题: 分享一个小工具用小按键和5110液晶来修改所有的参数
小弟来论坛也半年多了一直没什么贡献今天来分享一下小弟昨天做的一个小工具。用四个小按键修改程序中的参数5110液晶用来显示。先上张图[attach]31876[/attach]图中用红笔圈起来的是加速度计和陀螺仪的输出值动态显示在液晶上。其他为待修改的参数,当某一个数值前有一个‘*’时说明可以对其修改了。由于我不会用SD卡所以不能对参数记忆,具体说明都在压缩包里。谨以此贴献给学弟学妹们,不要像我一样修改一个参数都要下载一次程序了。[attach]31877[/attach]

补充内容 (2012-10-25 17:28):
第30楼增加了SD卡功能

补充内容 (2012-10-25 20:00):
修改display文件中的11个延时函数delay(unsigned int)中的参数可以改变参数选择按键的灵敏性。
作者: qinlu123    时间: 2012-9-2 16:13
沙发是我的
作者: linping9656    时间: 2012-9-2 16:18
谢谢分享啊
作者: litaov2010    时间: 2012-9-2 17:05

作者: qinlu123    时间: 2012-9-3 19:54
好冷清啊
作者: 叶子一哥    时间: 2012-9-3 21:26
谢了
作者: qinlu123    时间: 2012-9-4 18:58
只下不顶令人伤心
作者: 前行者cross    时间: 2012-9-6 22:08

作者: 寒路独行、    时间: 2012-9-7 08:15

作者: csuwp    时间: 2012-9-7 10:45
upup!!!!!!!好东西!
作者: hxx    时间: 2012-9-7 12:40
数据能写进flash不?
作者: qinlu123    时间: 2012-9-7 14:08
hxx 发表于 2012-9-7 12:40
数据能写进flash不?

应该能吧我没试过,你要是成功了发给我份看看
作者: 颠覆理论    时间: 2012-9-7 15:44
我只是会写入一个数据,写入不同的地址的话,只能读出一个数据,不知道怎么回事
作者: qinlu123    时间: 2012-9-7 16:20
颠覆理论 发表于 2012-9-7 15:44
我只是会写入一个数据,写入不同的地址的话,只能读出一个数据,不知道怎么回事

读写flash和eeprom我还不敢整
作者: 颠覆理论    时间: 2012-9-7 16:45
qinlu123 发表于 2012-9-7 16:20
读写flash和eeprom我还不敢整

我原来也不敢,但是这样带来了很多不便,比如说赛道数据分析,现在也在开始
作者: qinlu123    时间: 2012-9-7 17:25
颠覆理论 发表于 2012-9-7 16:45
我原来也不敢,但是这样带来了很多不便,比如说赛道数据分析,现在也在开始

我想学SD卡但是一直没学会

作者: 颠覆理论    时间: 2012-9-7 17:28
qinlu123 发表于 2012-9-7 17:25
我想学SD卡但是一直没学会

呵呵。一起,把手头的忙完就学
作者: liucheng_34    时间: 2012-9-8 11:15
加油!!!!!!!!!!!!
作者: hxx    时间: 2012-9-8 18:34
qinlu123 发表于 2012-9-7 14:08
应该能吧我没试过,你要是成功了发给我份看看

拜托,你自己写的程序你不了解么?液晶屏我用过,但就是写入flash没成功,只写进RAM了

作者: 840149319    时间: 2012-9-8 19:24


感谢分享!!!
作者: qinlu123    时间: 2012-9-8 20:02
hxx 发表于 2012-9-8 18:34
拜托,你自己写的程序你不了解么?液晶屏我用过,但就是写入flash没成功,只写进RAM了

我从来都没有写过flash。
作者: shao6254842    时间: 2012-9-9 09:06

作者: 付瑜    时间: 2012-9-12 19:28
先谢谢了,有了这个的确会很方便的
作者: lixin101357    时间: 2012-9-20 19:30
:):):)
作者: Move123456    时间: 2012-10-11 13:26
下人东西是要顶的
作者: 西钊    时间: 2012-10-11 13:33
:)
作者: 潶袍    时间: 2012-10-11 16:29
谢谢
作者: LINJIE123    时间: 2012-10-12 10:37

作者: happyzn75    时间: 2012-10-12 13:33

作者: qinlu123    时间: 2012-10-14 20:34
本帖最后由 qinlu123 于 2012-10-14 20:35 编辑

[attach]32884[/attach][attach]32883[/attach][attach]32882[/attach]现在附上修改后的新版本,新的版本加上了SD卡可以储存数据要注意的是我在实验的时候用了两块SD卡,其中4G的没有成功后来用的sandisk公司1G的可以用,80引脚的xs128 112引脚的好像不行。前两个参数是通过电位器修改的当然稍微修改程序也可以用键盘修改,SD程序是我从网上找的一并附上。
作者: icitydesk    时间: 2012-10-15 23:41

作者: 弈心    时间: 2012-10-20 09:16
学习,谢谢!
作者: 前行者cross    时间: 2012-11-8 21:15
我来了,谢谢大神!
作者: xuetianyou    时间: 2012-11-8 21:16

作者: 你是我/sun    时间: 2012-11-8 23:22
ok
作者: 我是谁2011    时间: 2012-11-10 15:38
此贴必火
作者: 夜之冰木九羽    时间: 2012-11-10 16:01
赞一个!!!
作者: 杀手王旭    时间: 2013-1-15 13:49
要是修改小数参数,数字分解怎么写
作者: exiao    时间: 2013-1-15 14:47
这工具不错
作者: qinlu123    时间: 2013-1-15 15:46
杀手王旭 发表于 2013-1-15 13:49
要是修改小数参数,数字分解怎么写

如果你的小数点后有两位,你可以输入一个相应位数的整数在程序里边除以100就行啦,别忘啦用float型保存。
作者: 杀手王旭    时间: 2013-1-15 15:54
qinlu123 发表于 2013-1-15 15:46
如果你的小数点后有两位,你可以输入一个相应位数的整数在程序里边除以100就行啦,别忘啦用float型保存。

我定义的值用float,调用子函数suzifenjie,就出错了Link error1822,WarningC5919怎么回事

作者: 杀手王旭    时间: 2013-1-15 16:07
我想把speed_p,speed_i, angle_p着一些值,初始定义为小数,通过键盘加减,怎么让它数字分解

作者: qinlu123    时间: 2013-1-15 16:11
杀手王旭 发表于 2013-1-15 15:54
我定义的值用float,调用子函数suzifenjie,就出错了Link error1822,WarningC5919怎么回事

shuzifenjie是用来将一个整数的各位拆开用来液晶显示的,你看看shuzifenjie函数所带参数的类型应该是unsigned char型。如果你有一个参数的范围是0.00-1.00,那么程序需要这么写。
unsigned char canshu;//这里把它定义为char型是用来送液晶
float canshu_true;//这才是要真正参与小车算法运算的变量
读取SD内容
调用键盘函数(键盘里边有数据分解和数据显示函数,数据分解要这么写shujufenjie(canshu);)
参数修改好了
canshu_true=canshu/100;
要是不放心就这么写
canshu_true=(float)(canshu/100);


作者: qinlu123    时间: 2013-1-15 16:17
杀手王旭 发表于 2013-1-15 16:07
我想把speed_p,speed_i, angle_p着一些值,初始定义为小数,通过键盘加减,怎么让它数字分解

用键盘直接加减小数并不难,难就难在显示。数字分解目的就是用来为显示服务的,你可以将你定义的小数乘以100(精确都小数点后两位)或1000(精确到小数点后3位)然后以long或int或char型保存,不过要注意数据类型的转换。
作者: AOE    时间: 2013-1-15 16:22
相见恨晚...好东西...
作者: 杀手王旭    时间: 2013-1-15 16:30
void shuzifenjie1(float number1)
{
  unsigned char number11;
  number11=(unsigned char)(number1*10);
  bai1=number11/100;
  shi1=number11%100/10;
  ge1=number11%10;

}这样写错在哪               要分解的是1.00的小数
作者: qinlu123    时间: 2013-1-15 16:35
杀手王旭 发表于 2013-1-15 16:30
void shuzifenjie1(float number1)
{
  unsigned char number11;

这样写是没错的,但是小数点后第二位被忽略掉了。
作者: 杀手王旭    时间: 2013-1-15 16:40
怎么解决,我现在执行不出来
作者: qinlu123    时间: 2013-1-15 16:43
杀手王旭 发表于 2013-1-15 16:40
怎么解决,我现在执行不出来

乘100啊如果你想显示小数点后三位就乘1000,但你要记住char最大可以装255超过255就溢出喽。
作者: 杀手王旭    时间: 2013-1-15 16:53
改成100,编译 C5919 conversion of floating to unsigned integral;

link error L1822 Symbol fmUL in file  ........ is    undefined
作者: qinlu123    时间: 2013-1-15 17:07
杀手王旭 发表于 2013-1-15 16:53
改成100,编译 C5919 conversion of floating to unsigned integral;

link error L1822 Symbol fmUL in  ...

连接有问题,你下载那个我发的不支持SD的文件,除了头文件和主函数锁相环全部删掉。
float a=1.22;
void shuzifenjie1(float number1)
{
  unsigned char number11;
  number11=(unsigned char)(number1*100);
  bai1=number11/100;
  shi1=number11%100/10;
  ge1=number11%10;

}
在主函数里调用
shuzifenjie1(a);
看看能不能通过编译

作者: 杀手王旭    时间: 2013-1-15 17:24
一调用就连接问题,不调用就是警告float转换为int,我也没用SD啊,为什么不让我把float转换为int,留个QQ求指教,785217313
作者: 杀手王旭    时间: 2013-1-15 17:28
转换char型
作者: qinlu123    时间: 2013-1-15 17:34
杀手王旭 发表于 2013-1-15 17:28
转换char型

解决了就好。
作者: 杀手王旭    时间: 2013-1-15 17:36
没有解决啊 ,还是老问题
作者: 杀手王旭    时间: 2013-1-15 17:37
要显示必须调用啊
作者: qinlu123    时间: 2013-1-15 18:20
杀手王旭 发表于 2013-1-15 17:36
没有解决啊 ,还是老问题

你把工程文件发给我,等过两天考试完我给你看看。
qinlucool@163.com
作者: 我爱小kb    时间: 2013-1-15 18:29
楼主好人呀,一定要顶起
作者: 我爱小kb    时间: 2013-1-15 18:29
楼主好人呀,一定要顶起
作者: ぐ雨灬枫ゾ    时间: 2013-1-15 20:03
谢谢分享
作者: 杀手王旭    时间: 2013-1-15 21:04
搞定了
作者: qinlu123    时间: 2013-1-16 17:29
杀手王旭 发表于 2013-1-15 21:04
搞定了

搞定了就好,应该是数据类型的问题。
作者: 杀手王旭    时间: 2013-1-16 21:42
显示没问题,按键也没问题,按了之后数据不变,怎么回事
作者: 杀手王旭    时间: 2013-1-16 21:49
LCD_POS(4*6,0);       
                  for(i=0;i<6;i++)
                          send_comordata(0x00,data);       
这个什么意思
作者: 杀手王旭    时间: 2013-1-16 23:13

LCD_POS(),括号里的坐标怎么确定的
作者: qinlu123    时间: 2013-1-17 09:39
杀手王旭 发表于 2013-1-16 23:13
LCD_POS(),括号里的坐标怎么确定的

这个不好说,你找找5110液晶的资料然后对照程序看一下就懂了。
作者: glacier0    时间: 2013-1-17 10:03
好东西
作者: zangfan    时间: 2013-1-17 11:21
好东西啊,谢谢分享
作者: 杀手王旭    时间: 2013-1-17 13:44
为什么我数字加了显示器数值不变
作者: liuyuliuyu1216    时间: 2013-1-17 14:55
谢谢楼主
作者: qinlu123    时间: 2013-1-17 16:17
杀手王旭 发表于 2013-1-17 13:44
为什么我数字加了显示器数值不变

是我的程序吗,不会啊随变随显啊。如果你修改过了那就得靠你自己了。
作者: xin99    时间: 2013-1-17 16:26

作者: 杀手王旭    时间: 2013-1-17 16:41
qinlu123 发表于 2013-1-17 16:17
是我的程序吗,不会啊随变随显啊。如果你修改过了那就得靠你自己了。

被我改过了,现在正常了

作者: 水木风情    时间: 2013-1-17 17:53
谢谢
作者: silence2455    时间: 2013-1-25 17:49

作者: 一只咸鱼    时间: 2013-1-26 13:12
正需要这个东西,谢了!
作者: 笑失风    时间: 2013-1-27 09:43
  顶!!
作者: cqhb小麦    时间: 2013-1-27 09:59

作者: 工大飞虎队007    时间: 2013-1-27 21:25

作者: sm047    时间: 2013-3-16 09:52
感谢楼主分享
作者: lgh183    时间: 2013-3-22 11:16
多谢大神支招啊
作者: lpp5301308    时间: 2013-3-25 17:56
支持~~
作者: 王力东    时间: 2013-3-25 23:15
帮顶
作者: jzw7512651    时间: 2013-3-26 17:39
顶一个
作者: 恋shang_。。(S    时间: 2013-3-31 10:13
你就用四个键而已,为何硬件还要搞12个键
作者: qinlu123    时间: 2013-3-31 10:26
恋shang_。。(S 发表于 2013-3-31 10:13
你就用四个键而已,为何硬件还要搞12个键

我手头正好有个4*3的矩阵键盘就用了其中4个键。没必要再去单独做4个键啦。

作者: guoshunkai521    时间: 2013-3-31 10:30

作者: lyb    时间: 2013-3-31 10:36
多谢了

作者: WONIU    时间: 2013-4-5 00:22
谢谢楼主了!
作者: 昌林旺旺    时间: 2013-4-5 20:36

作者: 工大飞虎队007    时间: 2013-4-5 20:47
mark
作者: 689LL    时间: 2013-4-30 22:51

作者: zhangdi56777    时间: 2013-5-10 09:50
haoniu
作者: 乱码。。。。    时间: 2013-8-31 11:06
顶一个
作者: 顾笑斐    时间: 2013-9-1 15:44
谢师兄
作者: 宓海宁    时间: 2013-9-1 16:29
好东西当然要分享
作者: 15033315910    时间: 2013-9-3 21:46
:victory::victory::victory::victory:
作者: pln760    时间: 2013-9-3 23:48

作者: 15033315910    时间: 2013-9-30 17:32
:lol:lol:lol
作者: cr531585    时间: 2013-10-1 18:00
谢啦                                         





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2