冷血动物
发表于 2013-12-4 22:13:37
源程序我已经做了整理,加了很多注释,就是为了方便大家阅读。待会儿我把各函数功能再向大家作一个介绍,方便大家学习研究。
void adc_init(void) 初始化ADC
unsigned int adc_read(unsigned char ADCChannel)读取ADC值,参数为ADC通道数
void GetPluseTime(void) 计算当前每个通道高低电平时间,需要初始化 CurrModelSav、CurrPluseTime后再用,该函数就是最核心的算法所在
void ReadModelSav(unsigned char ModelNo)读取保存在EEPROM中的模型数据,参数为模型编号
void IntToStr(void)将TempInt的值转化为TempStr中的字符(5位数),便于在液晶屏上显示
void IntToShortStr(void)将TempInt的值转化为TempStr中的字符(4位或3位数),便于在液晶屏上显示
void DrawCursor(unsigned char CursorNum,unsigned char CursorSeg,unsigned char CursorLength) 画当前光标的位置,用于菜单指示当前项
void DrawCurv(unsigned char CurvType) 用于画曲线设置界面,参数CurvType,1为油门曲线,2为螺距曲线;
void press_init(void)初始化按键
int getpress(void)检查当前按键,返回值为当前键值
void Watchdog_Init(void)初始化看门狗,以便遥控器死机后可自动重启
void CloseWatchdog(void)关闭看门狗
void rc_init(void)遥控器初始化
void DrawSubTrim(unsigned char PageNo,unsigned char Content) 用于画中位微调和行程调节的界面
void DrawPlaneType(void)用于画飞机类型选择的界面
void KeyPress(unsigned char KeyNo) 核心的按键处理和界面处理
void DelayTime(unsigned int Time) 延时程序
voidWasteTime(unsigned int Time,unsigned int StartTime)从某时开始的延时程序
冷血动物
发表于 2013-12-4 22:13:40
“低成本自制航模电子设备系列之一:和我一起用ATMEGA8做遥控器”的帖子写到这里,基本上告一段落了,谢谢大家的关注,特别是有几个朋友一直在关注。程序还有一些小的BUG,不过不影响大的功能,所以我没有去改了,有兴趣的同学自已去发现和修改吧。
预告:下一步我将开发450直升机用锁尾式陀螺仪和平衡仪。本来基于atmega32和ITG3205,MMA6331的原型已经开发完成,但由于AVR单片机的ADC只有10位,而6331又是模拟信号,其有效电压区间在1.5-2.8V间,所以采集的精度有限,本来想换数字接口的加速度计,或者买成品的十轴板来做。
但这两天突然又看了STM32的资料,它的ADC是12位的,应该够用了,所以又在采购STM32的最小系统板,准备上STM32。STM32以前没用过,也正好试试新的单片机。
其实在做遥控器前,我连单片机从来都没接触过,但接触了,也就那么回事,不过STM32肯定会比AVR的8位单片机要难一些,但折腾和学习不正是我们的目的吗?
我会视进度另行开贴“低成本自制航模电子设备系列之二:和我一起用STM32做450直升机锁尾陀螺仪和平衡仪”
xiaoxiao_add
发表于 2013-12-5 22:52:58
教程吧,楼主来一个,么么哒{:1_13:}
onlymore
发表于 2013-12-6 20:42:16
换了地方还是发现了你{:1_9:}
fchch
发表于 2013-12-6 22:22:44
在这里又看见老师了
冷血动物
发表于 2013-12-9 09:58:13
还是有朋友在问到元件清单,还是发一个吧。
2.54单排针若干
2.54短路帽2只
AMS1117-3.3V 1只
AMS1117-5.0V 1只
1*16单排座 2.54间距 配1602 使用 1只
单联50K电位器 2只
蓝色不带白帽 小扭子开关2只
1k-10k贴片可变电阻0805 1只
08050.1uf电容 3只
080522pf电容 2只
0805贴片LED 2只
0805-10UH贴片电感 1只
08051k 电阻 2只
08051.5k 电阻 1只
0805 10k 电阻 1只
080568欧 电阻 1只
贴片S8050贴片三极管 1只
接插件DC3-10P jtag座 1只
3*6*5微动开关 4只(可考虑用长杆的)
晶体《晶振》16M 1只
Atmega8A-AU 1只
LCD1602 1只
enots
发表于 2013-12-26 00:45:08
想问一下冷血老师mega8遥控器电路.1602液晶的第4脚(RS脚) 接到 mega8的PC3上是什么意思?mega8的 PC0~PC7不是都用作通道模拟量采集了吗?
enots
发表于 2013-12-26 01:22:57
本帖最后由 enots 于 2013-12-26 01:24 编辑
哦,结合程序才了解了, 原来8个ADC引脚,唯独ADC3(PC3脚)没有用作AD采集,我以为8个通道就是对应着8个ADC脚上的AD值 . 我可以放心使用这个原理图了.谢谢老师啊
冷血动物
发表于 2013-12-26 20:43:27
enots 发表于 2013-12-26 01:22 static/image/common/back.gif
哦,结合程序才了解了, 原来8个ADC引脚,唯独ADC3(PC3脚)没有用作AD采集,我以为8个通道就是对应着8个ADC脚 ...
你动作挺快啊,我刚想回答你,结果你就自己搞定了。
值得表扬!
e5919
发表于 2013-12-28 13:29:43
冷血老师来啦!必须顶
来自安卓客户端
enots
发表于 2013-12-31 02:42:17
哈哈,我的平生第一块板子布通了, 用儿子旧玩具的遥控器,上面有摇杆,电位器等,但位置什么的全都固定了.所以尝试着一边学习pads软件,一边重新画板. 累死我了.{:1_15:}, 不过满有成就感的哈.
pcb:
原理图,也是参考老师的原理图片,结合破遥控器上的可用零件,重新画的:
接下去,准备热转印制作这个双层板,哈哈,不知道会不会成功呢.{:1_7:}
enots
发表于 2014-1-1 02:37:50
对pads软件的熟悉程度为0开始, 近三个星期,每天都学习/画到深夜的成果!----,借用老师的原理图, 在儿子已经不愿玩的一个破遥控手柄的基础上重新画板.准备先用433Mhz的发射接收,把那些没有比例的遥控玩具先改造一番(改成比例遥控),估计儿子又会爱上它们{:1_9:}
Yjsad
发表于 2014-1-1 12:34:24
顶一下
hjhhsl35158
发表于 2014-3-28 14:52:47
老师,你好,我是一个新手,我想自己做个舵机测试仪,我的单片机是ATmega8L 8AU的能用16M的晶振吗?如果不能用该如何设定?
kingdog
发表于 2014-12-17 14:00:17
准备跟上楼主学习搞这个。从来没搞过硬件,单片机,画pcb啥的。不知道学习起来要多久。
凯莱
发表于 2014-12-18 19:28:10
貌似在哪里看过,就怕不稳定所以不敢做
心心不停
发表于 2015-1-18 20:41:03
来的晚了,但是大力支持啊!不喜欢买现成的直接连,喜欢自己研究。
One独角兽
发表于 2015-1-20 11:46:43
楼主好人啊
ysa
发表于 2015-1-21 12:27:34
看不懂。。。。。。。。
guo1253
发表于 2015-4-7 16:52:05
前辈,今天在网上看了你的文章,因为自己也想要做遥控器,所以慢慢的学习,您的文章对我帮助很大,不过很多地方我还没有理解透,因为我也没接触过AVR,现在有在接触STM32的,慢慢努力。