智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3727|回复: 5
打印 上一主题 下一主题

蓝宙ccd程序

[复制链接]

7

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
660
威望
211
贡献
107
兑换币
133
注册时间
2013-4-7
在线时间
171 小时
跳转到指定楼层
1#
发表于 2013-4-9 17:41:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请各位大神指点一下,蓝宙公开的tsl1401的测试程序中,有一部分,是CPU.C,vector.c,这两块程序有什么用处????
/**********************************************************************************
********************* (C) COPYRIGHT 2012 蓝宙电子科技有限公司 *********************
***********************************************************************************
* 描述         :线性CCD测试程序
*
* 实验平台     :蓝宙电子XS128系统板 + TSL1401线性CCD传感器
*
* 作者         :蓝宙电子科技有限公司
* 淘宝店       :http://landzo.taobao.com
* 网站         :http://www.landzo.cn
**********************************************************************************/
/*
*********************************************************************************************************
*
*                                      MCU: MC9S12XS128MAL - 112Pin
*                                      OSC: 16.000MHz
*                                      BUS: 40.0MHz
*
* File : CPU.c
* By   : Ke Chao
*********************************************************************************************************
*/

#include "includes.h"


/*
*********************************************************************************************************
* Description: _EntryPoint
* Note: Oscillator = 16M ---> Fbus = 40M
*********************************************************************************************************
*/
#pragma CODE_SEG __NEAR_SEG NON_BANKED

extern void _Startup(void);

void _EntryPoint(void) {
/*  Initialization code after reset */
    MMCCTL1 = 0;                //Memory Mapping Control
    DIRECT  = 0;                //Direct Page Register
    IVBR    = 0xFF;             //Interrupt Vector Base Register

    ECLKCTL = 0xC0;             //ECLK Control Register
                                //ECLK disabled
                                //ECLKX2 disabled

/*  System clock initialization */
    CLKSEL  = 0;                //S12XECRG Clock Select Register,Select clock source from XTAL and set bits in CLKSEL reg.
                                //System clocks are derived from OSCCLK
                                //Oscillator is disabled in Stop Mode
                                //Loop controlled Pierce Oscillator is selected
                                //IPLL keeps running in Wait Mode
                                //RTI keeps running in Wait Mode
                                //COP keeps running in Wait Mode

    PLLCTL  = 0x81;             //S12XECRG IPLL Control Register,Disable the PLL
                                //Clock monitor is enabled
                                //IPLL is turned off
                                //FM off
                                //Fast wake-up from full stop mode is disabled
                                //RTI stops running during Pseudo Stop Mode
                                //COP stops running during Pseudo Stop Mode
                                //Detection of crystal clock failure forces the MCU in Self Clock Mode

    SYNR    = 0x44;             //S12XECRG Synthesizer Register,Set the multiplier register
                                //VCOFRQ[1:0] = 0b01,48MHz < fVCO<= 80MHz
                                //SYNDIV[5:0] = 0b000100,SYNDIV = 4

    REFDV   = 0x81;             //S12XECRG Reference Divider Register,Set the divider register
                                //REFFRQ[1:0] = 0b10,6MHz < fREF <= 12MHz
                                //REFDIV[5:0] = 0b000001,REFDIV = 1

    POSTDIV = 0;                //S12XECRG Post Divider Register,Set the post divider register
                                //POSTDIV[4:0] = 0b00000,POSTDIV = 0,If POSTDIV = $00 then fPLL is identical to fVCO (divide by one).

    PLLCTL  = 0xC1;             //S12XECRG IPLL Control Register
                                //Clock monitor is enabled
                                //IPLL is turned on
                                //FM off
                                //Fast wake-up from full stop mode is disabled
                                //RTI stops running during Pseudo Stop Mode
                                //COP stops running during Pseudo Stop Mode
                                //Detection of crystal clock failure forces the MCU in Self Clock Mode
    while(CRGFLG_LOCK == 0);    //Wait until the PLL is within the desired tolerance of the target frequency
    CLKSEL  = 0x80;             //S12XECRG Clock Select Register,Select clock source from PLL
                                //System clocks are derived from PLLCLK (fBUS = fPLL / 2).

/*  High Temperature Control */
    VREGHTCL= 0x10;

/*  Interrupt Enable Register */
    CRGINT &= (unsigned char)~(unsigned char)0x12;

/*  VREGCTRL - Control Register */
    VREGCTRL &= (unsigned char)~(unsigned char)0x02;

/*  CRG COP Control Register */
    COPCTL = 0x00;

/*  Interrupt Control Register */
    IRQCR &= (unsigned char)~(unsigned char)0x40;

/*  Jump to C startup code */
    asm jmp _Startup;
}

#pragma CODE_SEG DEFAULT


/*
*********************************************************************************************************
* Description: Cpu_Delay100US
* Note: Fbus = 40M
*********************************************************************************************************
*/
#pragma MESSAGE DISABLE C5703

void Cpu_Delay100US(uint16_t us100) {
   asm {
    LOOP:
        PSHD                                /* (2 c: 50 ns) backup D */
        LDD     #$0532                      /* (2 c: 50 ns) number of iterations */
    LOOP1:
        DBNE    D,LOOP1                     /* (3 c: 75 ns) repeat 1330x */
        PULD                                /* (3 c: 75 ns) restore D */
        DBNE    D,LOOP                      /* us100 parameter is passed via D register */
    }
}

#pragma MESSAGE DEFAULT C5703

求指点!!!!!!!!!!!!!

20

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
威望
241
贡献
89
兑换币
132
注册时间
2013-3-31
在线时间
55 小时
2#
发表于 2013-4-25 14:54:23 | 只看该作者
楼主,明白这段程序了,我也不明白,给解释下呗
回复 支持 反对

使用道具 举报

16

主题

240

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1489
威望
835
贡献
312
兑换币
165
注册时间
2012-2-7
在线时间
171 小时
3#
发表于 2013-4-25 18:38:54 | 只看该作者
锁相环  总线时钟设置吧
回复 支持 反对

使用道具 举报

7

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
660
威望
211
贡献
107
兑换币
133
注册时间
2013-4-7
在线时间
171 小时
4#
 楼主| 发表于 2013-4-25 19:19:07 | 只看该作者
好哦阿斯兰 发表于 2013-4-25 18:38
锁相环  总线时钟设置吧

蓝宙的测试程序可以使用么??????直接下到128上效果好么??、
回复 支持 反对

使用道具 举报

16

主题

240

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1489
威望
835
贡献
312
兑换币
165
注册时间
2012-2-7
在线时间
171 小时
5#
发表于 2013-4-25 19:22:05 | 只看该作者
上位机挺实用的
回复 支持 反对

使用道具 举报

0

主题

100

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1217

活跃会员奖章优秀会员奖章

威望
590
贡献
349
兑换币
280
注册时间
2012-12-8
在线时间
139 小时
6#
发表于 2014-4-5 18:27:25 | 只看该作者
锁相环程序,将cpu超频至40M
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 22:50 , Processed in 0.174521 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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