123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /*
- *******************************************************************************
- * Copyright(C) NEC Electronics Corporation 2010
- * All rights reserved by NEC Electronics Corporation.
- * This program should be used on your own responsibility.
- * NEC Electronics Corporation assumes no responsibility for any losses
- * incurred by customers or third parties arising from the use of this file.
- *
- * This device driver was created by Applilet3 for V850ES/Jx3
- * 32-Bit Single-Chip Microcontrollers
- * Filename: CG_system.c
- * Abstract: This file implements device driver for System module.
- * APIlib: Applilet3 for V850ES/Jx3 V2.01 [20 Apr 2010]
- * Device: uPD70F3746
- * Compiler: IAR Systems ICCV850
- * Creation date: 6/26/2010
- *******************************************************************************
- */
- /*
- *******************************************************************************
- ** Include files
- *******************************************************************************
- */
- #include "CG_macrodriver.h"
- #include "CG_system.h"
- /* Start user code for include. Do not edit comment generated here */
- /* End user code. Do not edit comment generated here */
- #include "CG_userdefine.h"
- /*
- *******************************************************************************
- ** Global define
- *******************************************************************************
- */
- /* Start user code for global. Do not edit comment generated here */
- /* End user code. Do not edit comment generated here */
- void clock_pll_mode(void)
- {
- /* CPU operation clock selection */
- /* Set PLL mode. */
- PLLCTL = 0x03; /* bit 1: CPU clock selection (PLL mode/clock-through mode selection) */
- /* 1: PLL mode, 0: Clock-through mode */
-
- __asm("_loop: set1 1,0xF82C[r0]"); //__IO_REG8_BIT( PLLCTL, 0xFFFFF82C, __READ_WRITE )
- __asm(" tst1 1,0xF82C[r0]"); //__IO_REG8_BIT( PLLCTL, 0xFFFFF82C, __READ_WRITE )
- __asm(" bz _loop");
-
- return;
- }
- void clock_pcc_mode(void)
- {
- /* DMA is forcibly terminated in this sample since DMA transfer must be terminated
- before data is set to a special register. */
-
- if(TC0 == 0 && E00 == 1){ /* DMA0 transfer judgment */
- INIT0 = 1; /* DMA0 forcible termination */
- }
- if(TC1 == 0 && E11 == 1){ /* DMA1 transfer judgment */
- INIT1 = 1; /* DMA1 forcible termination */
- }
- if(TC2 == 0 && E22 == 1){ /* DMA2 transfer judgment */
- INIT2 = 1; /* DMA2 forcible termination */
- }
- if(TC3 == 0 && E33 == 1){ /* DMA3 transfer judgment */
- INIT3 = 1; /* DMA3 forcible termination */
- }
-
- /* The PCC register is a special register. Data can be written to this register only in a combination of specific sequences. */
- /* bit 1, bit 0: Clock selection, 11: fxx/8, 10: fxx/4, 01: fxx/2, 00: fxx */
- /* Clock selection: fxx */
- __asm("mov 0x00, r10"); /* Set general-purpose register data to be set to special register. */
- __asm("st.b r10, 0xF1FC[r0]"); /* Write to PRCMD register. */ //__IO_REG8(PRCMD, 0xFFFFF1FC, __WRITE)
- __asm("st.b r10, 0xF828[r0]"); /* Set PCC register. */ //__IO_REG8_BIT(PCC, 0xFFFFF828, __READ_WRITE)
- __asm("nop"); /* Insert five or more NOP instructions. */
- __asm("nop");
- __asm("nop");
- __asm("nop");
- __asm("nop");
-
- return;
- }
- /*
- **-----------------------------------------------------------------------------
- **
- ** Abstract:
- ** This function initializes the clock generator module.
- **
- ** Parameters:
- ** None
- **
- ** Returns:
- ** None
- **
- **-----------------------------------------------------------------------------
- */
- void CLOCK_Init(void)
- {
- DI(); /* Maskable interrupt disabled */
-
- do{
- clock_pll_mode(); /* PLL mode setting function */
-
- clock_pcc_mode(); /* PCC register setting function */
-
- }while(PRERR); /* Written in correct sequence? */
- }
- /* Start user code for adding. Do not edit comment generated here */
- /* End user code. Do not edit comment generated here */
|