智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1585|回复: 3
打印 上一主题 下一主题

[编程类] 求大侠~帮看看分时发射~搞到3点钟了~不知道哪里出问题了

[复制链接]

5

主题

16

帖子

0

精华

高级会员

Rank: 4

积分
595
威望
375
贡献
132
兑换币
36
注册时间
2012-2-19
在线时间
44 小时
毕业学校
GXUT
跳转到指定楼层
1#
发表于 2012-4-13 03:34:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5贡献
#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的分时发射就出现这种问题了。纠结啊!!!)

5

主题

16

帖子

0

精华

高级会员

Rank: 4

积分
595
威望
375
贡献
132
兑换币
36
注册时间
2012-2-19
在线时间
44 小时
毕业学校
GXUT
2#
 楼主| 发表于 2012-4-13 13:06:10 | 只看该作者
自己顶一下!!!
回复

使用道具 举报

7

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
931
QQ
威望
568
贡献
193
兑换币
8
注册时间
2011-11-7
在线时间
85 小时
3#
发表于 2012-5-8 13:28:55 | 只看该作者
本帖最后由 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表示两排中各亮一个  楼至不理解的话加好友      
回复

使用道具 举报

0

主题

27

帖子

0

精华

高级会员

Rank: 4

积分
638
威望
344
贡献
158
兑换币
0
注册时间
2012-3-21
在线时间
69 小时
4#
发表于 2012-5-13 12:02:36 | 只看该作者
循环变暗好像是延时时间太短
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 03:36 , Processed in 0.136226 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表