mc9s08lg32 时钟初始化

初始化MC9S08LG的时钟 fbus=1MHz

 

void MCU_Init(void)
{
   /***********Set up the clock registers to enter FEE mode *********************/
   
    //ICS Control Register 2 (ICSC2)//
    //
    //      bit 7     bit 6     bit 5     bit 4     bit 3   bit 2      bit 1     bit 0
    //    --------- --------- --------- --------- --------- ---------- --------- ---------
    //    |       BDIV        | RANGE   |   HGO   |   LP    |   EREFS  | ERCLKEN | EREFSTEN|
    //     ------------------- --------- --------- --------- ---------- --------- ---------
    //    |   0         0     |    0    |    0    |    0    |     1    |    1    |    0    |
    //     ------------------- --------- --------- --------- ---------- --------- --------
    //
    //
    //    BDIV     = 00    Set clock to divide by 1
    //    RANGE    = 0     Low Freq range selected (i.e. 32.768 kHz in high freq range)                     
    //    HGO      = 0     Ext Osc configured for low gain               
    //    LP       = 0     FLL is not disabled in bypass modes
    //    EREFS    = 1     Osc requested
    //    ERCLKEN  = 1     ICSERCLK active
    //    EREFSTEN = 0     Ext Reference clock is disabled in stop
    //
    ///*/
    
    /ICS Control Register 1 (ICSC1)///
    //
    //      bit 7     bit 6     bit 5     bit 4     bit 3   bit 2      bit 1     bit 0
    //     --------- --------- --------- --------- --------- ---------- --------- ---------
    //    |       CLKS        |            RDIV             |  IREFS   |IRCLKEN  |IREFSTEN |
    //     ------------------- --------- --------- --------- ---------- --------- ---------
    //    |   0         0     |    0    |    0    |    0    |     0    |    0    |    0    |
    //     ------------------- --------- --------- --------- ---------- --------- --------
    //
    //
    //    CLKS     = 00    Select clk source via FLL
    //    RDIV     = 000   Set to divide by 1 (i.e. 31.768kHz/1 = 31.768kHz - in range required by FLL)                     
    //    IREFS    = 0     Ext Ref clock selected
    //    IRCLKEN  = 0     ICSIRCLK inactive
    //    IREFSTEN = 0     Internal ref clock disabled in stop              
    //
    //
  //      bit 7     bit 6     bit 5     bit 4     bit 3   bit 2      bit 1     bit 0
    //     --------- --------- --------- --------- --------- ---------- --------- --------- 
    //        DRST            DMX32    IREFST          CLKST          OSCINIT  FTRIM1  
 //      ------------------- --------- --------- --------- ---------- --------- ---------
    //    |   0         0     |    0    |    0    |    0    |     0    |    0    |    0    |
    //     ------------------- --------- --------- --------- ---------- --------- --------
    //   DRST_DRS  00 Low range. 01 Mid range.
    //    DMX32      1 DCO is fined tuned for maximum frequency with 32.768 kHz reference.
  //    IREFST  0 Source of reference clock is external clock.
    //    CLKST    00 Output of FLL is selected.01 FLL Bypassed, Internal reference clock is selected  10 FLL Bypassed, External reference clock is selected.
   //     DRS  DMX32  Reference range  FLL factor  DCO range  
  //      00  0  31.25 - 39.0625 kHz  512  16 -20 MHz  
 //           1  32.768 kHz  608  19.92 MHz  
 //       01  0  31.25 - 39.0625 kHz  1024  32 -40 MHz  
 //           1  32.768 kHz  1216  39.85 MHz  
 //       10  0  31.25 - 39.0625 kHz  1536  48 -60 MHz  
 //           1  32.768 kHz  1824  59.77 MHz  
   ICSC2_BDIV      = 0X03;
   ICSC2_RANGE       = 0;   
   ICSC2_HGO         = 0;   //1
   ICSC2_EREFS       = 1;
   ICSC2_EREFSTEN    = 1;
   ICSC2_ERCLKEN     = 0;
  
   ICSSC_DMX32       = 0;
   ICSSC_DRST_DRS    = 0;
   ICSSC_IREFST      = 1;                 
  
   ICSSC_CLKST       = 0X01;             
  
   ICSC1_IRCLKEN     =0X01;       //1 ICSIRCLK active  The IREFS bit selects the reference clock source for the FLL.
   ICSC1_CLKS        = 0X00;     //01 Internal reference clock is selected.
   ICSC1_RDIV        = 0;       
   ICSC1_IREFS       = 1;      //1 Internal reference clock selected

 
  SCGC2_LCD=1;  //使能LCD时钟
 // SCGC1_RTC=1;  //使能RTC时钟
 // SCGC1_ADC=1;   //使能ADC时钟
 // SCGC1_TPM2=1;   //使能TPM2时钟
 // SCGC1_TPM1=1;   //使能TPM1时钟
 
 // SOPT1_COPE        = 0xc3;
    SOPT1_COPE        = 0x00;
     LCDC0_SOURCE=1; 
   }

  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
该程序移植注意事项:1.注意时钟的配置 2.PRM文件的配置 //========================================================== FLASH时钟配置: 文件“S08_Flash.h”中 “#define BUS_CLOCK 20000000”这句要根据自己所用的总线频率设定 //========================================================== PRM文件配置注意如下: SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */ Z_RAM = READ_WRITE 0x0070 TO 0x00FF; RAM = READ_WRITE 0x0170 TO 0x086F; ROM = READ_ONLY 0x18D0 TO 0xFFAF; ROM1 = READ_ONLY 0x0870 TO 0x17FF; ROM2 = READ_ONLY 0xFFC0 TO 0xFFC5; FLASH_TO_RAM = READ_ONLY 0x1860 TO 0x18CF RELOCATE_TO 0x0100;//!!! /* INTVECTS = READ_ONLY 0xFFC6 TO 0xFFFF; Reserved for Interrupt Vectors */ END //注:RAM地址0x0100 to 0x016F预留,用于存放擦写FLASH的程序; //========================================================== 在移植时由于新建工程所以经常忘记下面这3段的调整 1 Z_RAM = READ_WRITE 0x0070 TO 0x00FF; RAM = READ_WRITE 0x0170 TO 0x086F; 2 ROM = READ_ONLY 0x18D0 TO 0xFFAF; ROM1 = READ_ONLY 0x0870 TO 0x17FF; FLASH_TO_RAM = READ_ONLY 0x1860 TO 0x18CF RELOCATE_TO 0x0100; 3 FLASH_ROUTINES INTO FLASH_TO_RAM; //========================================================== 在移植过程中有可能出现下面的编译报错: Link Error:L1102 Out allocation space in segment FLASH_TO_RAM at address 0xXXXX 这是因为 FLASH_TO_RAM = READ_ONLY 0x1860 TO 0x18CF RELOCATE_TO 0x0100; 这里分配的空间不够,适当扩大就可以了 注:这个例程的缺点在于直接分配了RAM给擦写FLASH的程序,使这写RAM大部分时间浪费掉而不能用于其他用途 参考文献中介绍了一种较好的实现方式。 参考文献: “在HCS08微控制器上使用FLASH存储器模拟EEPROM”和 “HCS08系列单片机FLASH模拟EEPROM的应用”(请自行在网上搜所这些文档) 免责声明: 这段程序并非本人所写,也是摘自别处。 这段程序只是经过MC9S08AC60demo板简单的测试,未经过大批量和长时间的验证,所以若用在产品当中应谨慎,若出现因引用本程序而出现任何问题本人将不承担任何责任! jjj_sun 2009-3-28 23:24
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值