智能车制作

标题: 求大侠~帮看看分时发射~搞到3点钟了~不知道哪里出问题了 [打印本页]

作者: lsd89    时间: 2012-4-13 03:34
标题: 求大侠~帮看看分时发射~搞到3点钟了~不知道哪里出问题了
#pragma CODE_SEG __NEAR_SEG NON_BANKED //指示该程序在不分页区
void interrupt 66 PIT0(void)
{if(g==0){PT1AD0=0X00TT=0x01;sensor_L[15]=PORTA_PA0;};
  if(g==1){PTT=0x02;sensor_L[14]=PORTA_PA0;};
  if(g==2){PTT=0x04;sensor_L[13]=PORTA_PA1;};
  if(g==3){PTT=0X00;PORTE_PE2=1;sensor_L[12]=PORTA_PA1;};
  if(g==4){PORTE_PE2=0;PTT=0x10;sensor_L[11]=PORTA_PA2;};
  if(g==5){PTT=0x20;sensor_L[10]=PORTA_PA2;};
  if(g==6){PTT=0x40;sensor_L[9]=PORTA_PA3;};
  if(g==7){PTT=0x80;sensor_L[8]=PORTA_PA3;};
  if(g==8){PTT=0x00;PT1AD0=0x01;sensor_L[0]=PORTA_PA4;};
  if(g==9){PT1AD0=0x02;sensor_L[1]=PORTA_PA4;};
  if(g==10){PT1AD0=0x04;sensor_L[2]=PORTA_PA5;};
  if(g==11){PT1AD0=0x08;sensor_L[3]=PORTA_PA5; };
  if(g==12){PT1AD0=0x10;sensor_L[4]=PORTA_PA6;};
  if(g==13){PT1AD0=0x20;sensor_L[5]=PORTA_PA6;};
  if(g==14){PT1AD0=0x40;sensor_L[6]=PORTA_PA7;};
  if(g==15){PT1AD0=0x80;sensor_L[7]=PORTA_PA7;};
16个灯分时发射~现在的情况是全部照到白线,理论上应该是sensor_L数组应该是全部为一的,但是现在数组0 和15中的为0。这个我就奇怪了~而且我发现把T0的线拔了 T1口的数组14的又为0了~!! AD口的情况也是一样,把前一个接口拔了,后一个接口又收不到信号了~!!求各位大侠拯救下小的。(P.S:我原来用FOR循环做的分时发射,又没有问题,由于FOR循环那个太慢了,现在换PIT的分时发射就出现这种问题了。纠结啊!!!)

作者: lsd89    时间: 2012-4-13 13:06
自己顶一下!!!
作者: man蝶瘦瘦    时间: 2012-5-8 13:28
本帖最后由 man蝶瘦瘦 于 2012-5-8 13:31 编辑

void PA_single()
{  
   
   
   
                 
               
         for(;;)
         
        {
          int y[16]={0};
           DDRA= 0xff;
           DDRB=0x00;   
           
           
            PORTA=0x01;      
                  y[7]=PORTB_PB4;
                  y[8]=PORTB_PB3;
                  delayms(10);
                  
            PORTA=0x02; //
                  y[6]=PORTB_PB4;
                  y[9]=PORTB_PB3;
                   delayms(10);
         
                  PORTA=0x04;  //
                  y[5]=PORTB_PB5;
                  y[10]=PORTB_PB2;
                   delayms(10);
                  
                  PORTA=0x08; //
                  y[4]=PORTB_PB5;
                  y[11]=PORTB_PB2;
                    delayms(10);
            
            PORTA=0x10;      //
                  y[3]=PORTB_PB6;
                  y[12]=PORTB_PB1;
                    delayms(10);
               
            PORTA=0x20;      //
                  y[2]=PORTB_PB6;
                  y[13]=PORTB_PB1;
                   delayms(10);
               
            PORTA=0x40;      //
                  y[1]=PORTB_PB7;
                  y[14]=PORTB_PB0;
                    delayms(10);
           
            PORTA=0x80;      //
                  y[0]=PORTB_PB7;
                  y[15]=PORTB_PB0;   
                   delayms(500);

我也是一对儿 B口接收管  A口控制激光管点亮  分时速度慢可以调节延时参数  不过我这个循环后亮度会变暗  还没找到原因  楼主可以看看  看出门道请指教  两排激光管 每排八个 关于PORTA=ox01表示两排中各亮一个  楼至不理解的话加好友      
作者: bengyapa    时间: 2012-5-13 12:02
循环变暗好像是延时时间太短




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2