冷血动物 发表于 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的,慢慢努力。
页: 1 2 [3] 4 5
查看完整版本: 低成本自制航模电子设备系列之一:和我一起用ATMEGA8做遥控器