5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
标题:
舵机电调测试器
[打印本页]
作者:
root_007
时间:
2009-6-24 17:47
标题:
舵机电调测试器
这个最简单,但元件难找,我就死活找不到390nF的电容。
(, 下载次数: 70)
上传
点击文件名下载附件
还是单片机最简单,手头只有M8,本来这种东西,8Pin的ATTiny足矣。
内部1M,电压3V到5V,电位器10K以及上,越大越省电。
(, 下载次数: 54)
上传
点击文件名下载附件
实际测试,脉宽在1ms与2ms之间,周期21ms。
程序文件如何上传?这里只能传图片。
作者:
root_007
时间:
2009-6-24 17:49
标题:
还是自己去编译吧,这是ICCAVR的。
#include <iom8v.h>
#include <macros.h>
#include "common.h"
#define SetPlus() PORTB |= (1<<PB0)
#define ClrPlus() PORTB &= ~(1<<PB0)
UCHAR GetPosition()
{
INT8 i,nRet;
UINT nSum;
UINT8 nADC,nMax,nMin,iMax,iMin,nVol[4];
//pVoltage = 0;
nMax = 0;
nMin = 255;
ADCSRA|=(1<<ADSC); //启动ADC
while(ADCSRA & (1<<ADSC)); //首次值抛弃
//连续四次取样
for(i=0;i<4;i++)
{ ADCSRA|=(1<<ADSC); //启动ADC
while(ADCSRA & (1<<ADSC));
nADC = ADCH;
if(nADC > nMax)
{ nMax = nADC;
iMax = i;
}
else if(nADC < nMin)
{ nMin = nADC;
iMin = i;
}
nVol = nADC;
}
nSum = 0;
//去掉最大最小值,取平均数
for(i=0;i<4;i++)
{ if(i!=iMax && i!=iMin)
nSum += nVol;
}
nSum >>= 2;
return nSum > 120 ? 120 : nSum;
}
void init_devices(void)
{
CLI();
PORTB = 0x00;
DDRB = 0x01;
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
TCCR0 = 0x00;
TCNT0 = 0x83;
TCCR0 = 0x02;
ACSR = 0x80; //关闭模拟比较器
ADCSR = 0B10000000; //允许ADC
ADMUX = 0B00100000; //外部参考源,左对齐,0号通道
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00;
SEI();
}
void main(void)
{
INT8 nPos;
int i,nClr;
init_devices();
while(1)
{
SetPlus();
nPos = GetPosition(); //ADC过程,0.4ms
for(i=0;i<65;i++); //最少1 ms;
for(i=0;i<nPos;i++);
ClrPlus();
nClr = 2400 - nPos;
for(i=0;i<nClr;i++);
}
}
[
本帖最后由 root_007 于 2009-6-24 17:52 编辑
]
作者:
Jaken
时间:
2009-6-24 17:52
不懂编程,帮顶
作者:
hh718
时间:
2009-6-24 20:01
难懂,只会用:em01:
作者:
蓝色∮的海
时间:
2009-6-24 23:18
专业:em17:
作者:
yanrhfj
时间:
2009-6-25 13:01
用C语言写的
#include <iom8v.h>
#include <macros.h>
#include "common.h"
include "common.h"这个是自己做的函数吧???
作者:
yanrhfj
时间:
2009-6-25 13:05
谢谢LZ编译通过的,写的不错,可以给个再小点吗?
作者:
rchobby
时间:
2009-6-25 14:09
:em26:
作者:
LF-GODDESS
时间:
2009-6-25 14:22
还是555简单,看我的帖
作者:
小新
时间:
2009-6-26 20:12
电容可以找几个串,并联就可以了,数值可以用万用表直接测量
作者:
djb
时间:
2009-7-2 07:01
common.h头文件没有,编译通不过,能贴出来吗?
作者:
root_007
时间:
2009-7-2 14:50
源代码贴上来时被吃去几个字符,
nVol = 应该改为 nVol [ i ] =
comm.h就几个定义
#define UCHAR unsigned char
#define UINT unsigned int
[
本帖最后由 root_007 于 2009-7-2 14:56 编辑
]
作者:
张笑天
时间:
2009-7-2 18:58
好不好用?
作者:
航MI
时间:
2009-10-7 17:53
就测试简单就好
作者:
别拿菜鸟不当鸟
时间:
2009-10-7 19:44
不懂。!! 帮顶!
作者:
sh505
时间:
2009-10-24 08:27
顶
作者:
天线老宝宝
时间:
2012-3-25 14:55
请问楼主 为什么编译的时候一直会提示INT8 UINT8是未定义的呢? 刚接触单片机 还望楼主指点
作者:
xijiyoyilo
时间:
2012-3-26 05:12
标题:
不懂。!! 帮顶!
不懂。!! 帮顶!
作者:
zssssha
时间:
2012-3-26 10:21
很好的资料,标记一下,学习学习
作者:
小越
时间:
2012-4-13 09:30
10楼说的最简单实用
作者:
cot8
时间:
2012-4-13 09:38
真棒,谢谢分享:em15: :em15: :em15:
作者:
jjj206
时间:
2012-4-13 23:16
電容可以使用接近容量的。
作者:
wxd5765
时间:
2012-4-16 16:22
聪明的人还是很多啊,佩服
作者:
13905068660
时间:
2012-4-17 21:30
:em26:
作者:
feitian227
时间:
2012-7-26 16:32
为什么不开定时器啊?
作者:
icewoo
时间:
2012-8-2 13:29
有没有高手帮忙把这个程序编译下给个HEX文件,不懂编程,只会焊接刷程序。。。
作者:
snailb
时间:
2012-8-2 20:18
不折腾,这东西没几个钱,买一个省心,放心,安心,自己做的,如果出错,且正在试电机,那就很危险了
欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://wz.5imx.com/)
Powered by Discuz! X3.3