监测分析单片机某一管脚的序列脉冲,采用什么方式合适?

ipman 2004-09-15 10:08:48
脉冲宽度大的约300us,窄的约100us,几十个无规则的连续脉冲为1串,我想分析出宽载脉冲的序列,如何分析?
如果采用中断那从哪里开始中断?
请高手们提点建设性意见,先谢谢了~
...全文
116 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
coldsea_2000 2004-09-19
  • 打赏
  • 举报
回复
用单片机的捕捉功能吧。例如intel 87C51FB,就带有捕捉功能。他可以检测出频率范围比较宽的脉冲。
cnxiaoma 2004-09-17
  • 打赏
  • 举报
回复
第一次读到的时候就是开始了。
ipman 2004-09-17
  • 打赏
  • 举报
回复
谢谢,有点明白了
那如何判断一串脉冲的开始呢?
cnxiaoma 2004-09-17
  • 打赏
  • 举报
回复
设定时钟,通过时钟每50us产生一个中断,在中断中读取脉冲的高低,读到一个高的时候表示至少是一个窄的,连续读到3个高的时候,就认为是一个宽的。
ipman 2004-09-17
  • 打赏
  • 举报
回复
//这样也式了
if((PINB&0x20)==1){//如果有一个脉冲,就把PORTD=0;
PORTD=0;
}
}
ipman 2004-09-17
  • 打赏
  • 举报
回复
//脉冲宽度160us,采样周期128us,不论发送了多少脉冲,都没有收到一个,why?
//ICC-AVR application builder : 2004-9-17 14:04:04
// Target : M8
// Crystal: 2.0000Mhz

#include <iom8v.h>
#include <macros.h>
void port_init(void)
{
PORTB = 0x00;
DDRB = 0xDF;
PORTC = 0x7F; //m103 output only
DDRC = 0x00;
PORTD = 0xFF;
DDRD = 0x00;
}

//TIMER0 initialisation - prescale:256
// WGM: Normal
// desired value: 128uSec
// actual value: 128.000uSec (0.0%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0xFF; //set count
TCCR0 = 0x04; //start timer
}

#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0 = 0xFF; //reload counter value
if((PORTB&0x20)==1){//如果有一个脉冲,就把PORTD=0;
PORTD=0;
}
}
//call this routine to initialise all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
timer0_init();

MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x01; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialised
}

//
void main(void)
{
init_devices();
//insert your functional code here...
}
ipman 2004-09-16
  • 打赏
  • 举报
回复
我是用单片机分析,根据不同脉冲序列处理不同任务啊
romyks 2004-09-16
  • 打赏
  • 举报
回复
用示波器也就够了.
ipman 2004-09-16
  • 打赏
  • 举报
回复
cnxiaoma(小马)
能否详细点啊?
cnxiaoma 2004-09-16
  • 打赏
  • 举报
回复
50us的时间中断轮询,应该可以处理了,不需要中断的。
ppcust 2004-09-16
  • 打赏
  • 举报
回复
太慢了吧
yourcarol 2004-09-15
  • 打赏
  • 举报
回复
我觉得你可以使用比较好的示波器来抓图形出来,这样子的分析比较准确!
泰克的TDS1012就可以,100M带宽!足够用了!
ipman 2004-09-15
  • 打赏
  • 举报
回复
那一串码得触发很多回中断啊,如何保存分析?
McuPlayer 2004-09-15
  • 打赏
  • 举报
回复
最好是上升沿和下降沿都触发中断的单片机

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧