发表于:2003-01-29 13:22:00
8楼
我的源程序,用的是8选1的74ls151,主要功能,采集高频脉冲的平均频率。我没用when(reset)!在哪插入post_events() 阿,还要加什么才行?
#include<float.h>
IO_0 output bit a0;
IO_1 output bit a1;
IO_2 output bit a2;
const float_type f0839={0,0x3f,0,0x56,0xc8b4} /* 0.839 */;
float_type temp;
network output unsigned long T18,T17,T16,T15,T14,T13,T12,T11;
IO_4 input pulsecount ded io_total_ticks;
unsigned long pulse_value;
unsigned int k;
when(io_update_occurs(io_total_ticks))
{
switch(k){
case 0:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T18=fl_to_ulong(&temp);
io_out(a0,0);
io_out(a1,0);
io_out(a2,0);
break;
case 1:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T11=fl_to_ulong(&temp);
io_out(a0,0);
io_out(a1,0);
io_out(a2,1);
break;
case 2:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T15=fl_to_ulong(&temp);
io_out(a0,0);
io_out(a1,1);
io_out(a2,0);
break;
case 3:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T13=fl_to_ulong(&temp);
io_out(a0,0);
io_out(a1,1);
io_out(a2,1);
break;
case 4:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T17=fl_to_ulong(&temp);
io_out(a0,1);
io_out(a1,0);
io_out(a2,0);
break;
case 5:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T12=fl_to_ulong(&temp);
io_out(a0,1);
io_out(a1,0);
io_out(a2,1);
break;
case 6:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T16=fl_to_ulong(&temp);
io_out(a0,1);
io_out(a1,1);
io_out(a2,0);
break;
case 7:
pulse_value=io_in(io_total_ticks);
fl_from_ulong(pulse_value,&temp);
fl_div(&temp,&f0839,&temp);
T14=fl_to_ulong(&temp);
io_out(a0,1);
io_out(a1,1);
io_out(a2,1);
break;
}
k++;
if(k==8)
k=0;
}