智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4867|回复: 9
打印 上一主题 下一主题

[采集类] 摄像头采集输入捕捉进不了中断使能中断串口不发送

[复制链接]

5

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
QQ
威望
361
贡献
20
兑换币
0
注册时间
2009-11-16
在线时间
54 小时
跳转到指定楼层
1#
发表于 2010-1-17 18:07:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include <MC9S12XS128.h>
#define uint unsigned int



#define  hang 20    // 采集的行数
#define  line 50    //每行采集的点数
uchar    hang_flag ;  //每行采集的标志
uchar    table[hang][line];  //采集的数组
uchar    hang_shu;     //采集的行数
#define  hang_interrupt   TIE_C0I=1;
#define  dishang_interrupt TIE_C0I=0;
uchar    row1=0;  //  数组的行数


void IO_init( void )

{
   DDRA=0X00;  //PA口为图像数据输入口
   PUCR_PUPAE=1;  //使能上拉电阻


}

void catch_init(void)

{
   TSCR1_TEN=0;  //使能主定时器
   PERT=0XFF;
   DDRT=0X00;
   TIOS_IOS0=0;  //timer0,timer 1工作在输入捕捉方式下
   TIOS_IOS1=0;
   TCTL4=0X09;    //设置timer0 为上升沿触发,timer1为下降沿触发
   TIE_C0I=1;    //使能timer0 中断
   TIE_C1I=1;    //使能timer1 中断
   TSCR1_TEN=1;  //使能主定时器
}

void delay(uint z)  //延时函数 1ms

{
   uint x,y;
   for(y=z;y>0;y--)
     for(x=2250;x>0;x--);
}
void pll_init( void )    //锁相环初始化  总线时钟32M

{
   CLKSEL_PLLSEL=0;    //时钟选择
   PLLCTL_PLLON=1;      //使能锁相环控制器
   SYNR=3;              //时钟合成
   REFDV=1;             //时钟分配
   _asm(nop);
   _asm(nop);
   while(!(CRGFLG_LOCK==1));
   CLKSEL_PLLSEL=1;         //锁定时钟
}

void sci_init(void)
     
     {
        SCI0CR2=0X2C; //使能SCI 串口通信
        SCI0BDH=0X00;  // 波特率设置总线时钟32M 下波特率9600
        SCI0BDL=0XD0;
     }
  
  
    //放送初始化Send///
     void uart(uchar ch )
     
     
     {
      
        while(!(SCI0SR1&0Xc0));//必须是c0如果是80可能会出现乱码
        SCI0DRL=ch; //放送内容
     }


    uint i,j;         
   void main(void)
   
   {      
     
      EnableInterrupts;
      IO_init();
      catch_init();
      pll_init();
      sci_init();
      DDRB=0XFF;
      
   
      
      for(i=0;i< hang ;i++)
      
      {
        
          for(j=0;j<line;j++)
         
          {
             uart(table[i][j]);    //串口发送
             delay(11);
         
         
          }
      
      }
        
       for(;;)
      
       {
       }
     
   
     
   }



#pragma CODE_SEG NON_BANKED


void interrupt 8 hang_( void )

{
    uchar i,j;
    TFLG1_C0F=1;//清除行中断标志
    hang_flag ++;
    if(hang_flag==20)
   
    {
       dishang_interrupt
       hang_flag=0;
    }
      for(j=0;j<20;j++)
      
      {
         row1++;
         for(i=0;i<50;i++)
         
         {
           table[row1][i]=PORTA;
         }
      
      
      }
   
     
      
   
}

#pragma  CODE_SEG NON_BANKED
void interrupt 9 line_(void )

{
    TFLG1_C1F=1;//清除场中断标志
    hang_interrupt //使能行中断
     
     row1=0;
     hang_flag=0;
   
}

我采集20行,每行50点,

5

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
QQ
威望
361
贡献
20
兑换币
0
注册时间
2009-11-16
在线时间
54 小时
2#
 楼主| 发表于 2010-1-17 18:09:16 | 只看该作者
各位高手帮我看看
回复

使用道具 举报

5

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
QQ
威望
361
贡献
20
兑换币
0
注册时间
2009-11-16
在线时间
54 小时
3#
 楼主| 发表于 2010-1-19 14:38:19 | 只看该作者
怎么没人来看呢?
回复

使用道具 举报

22

主题

242

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2785

优秀会员奖章

威望
534
贡献
1925
兑换币
20
注册时间
2009-10-12
在线时间
163 小时
4#
发表于 2010-2-5 12:22:01 | 只看该作者
前面有个串口通信的代码是能用的,你可以借鉴下
回复

使用道具 举报

2

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
396
QQ
威望
289
贡献
57
兑换币
0
注册时间
2011-5-6
在线时间
25 小时
5#
发表于 2011-5-29 21:06:16 | 只看该作者
哪个前面?说具体点、、、
回复

使用道具 举报

1

主题

136

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1532
威望
912
贡献
366
兑换币
114
注册时间
2011-8-3
在线时间
127 小时
6#
发表于 2011-8-6 02:46:13 | 只看该作者
不懂,现在>>>
回复

使用道具 举报

30

主题

838

帖子

0

精华

常驻嘉宾

mrguang.taobao.com

Rank: 8Rank: 8

积分
3047

资源大师奖章论坛元老奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
1840
贡献
289
兑换币
15
注册时间
2010-12-3
在线时间
459 小时
7#
发表于 2012-3-10 10:10:01 | 只看该作者
void delay(uint z)  //延时函数 1ms

{
   uint x,y;
   for(y=z;y>0;y--)
     for(x=2250;x>0;x--);
}
请问楼主如何确定延时时间为1ms呢?
回复

使用道具 举报

2

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
599
威望
398
贡献
123
兑换币
11
注册时间
2011-11-16
在线时间
39 小时
8#
发表于 2012-3-18 19:44:01 | 只看该作者
568581185 发表于 2012-3-10 10:10
void delay(uint z)  //延时函数 1ms

{

请问你从这里看出什么问题来吗?
回复

使用道具 举报

3

主题

124

帖子

0

精华

高级会员

Rank: 4

积分
602
QQ
威望
431
贡献
65
兑换币
24
注册时间
2009-12-17
在线时间
53 小时
9#
发表于 2012-3-19 18:24:36 | 只看该作者
回复

使用道具 举报

7

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
威望
327
贡献
89
兑换币
2
注册时间
2012-4-4
在线时间
32 小时
毕业学校
山东大学威海分校
10#
发表于 2012-5-13 07:52:53 | 只看该作者
老帖子了这是,但是我却有同样的问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 17:08 , Processed in 0.050287 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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