⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 start_ux_device.c

📁 freescale最新的16位单片机
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
*
* Freescale Semiconductor Inc.
* (c) Copyright 2004-2005 Freescale Semiconductor, Inc.
* ALL RIGHTS RESERVED.
*
*******************************************************************************
*
* @file      controlfunctions.c
*
* @author    r89994
* 
* @version   1.0.0.0
* 
* @date      Mar-27-2006
* 
* @brief     Here are functions used in execute.c switches
*
********************************************************************************/

#include "main.h"
#include "start_Ux_device.h"
#include "spi.h"
#include "hidef.h"


/********************************************************************************
*																		Global Variables
*********************************************************************************/
extern Byte     fm_status, fm_task, fm_action0, fm_action1, fm_action2, fm_action3,
                fm_action4, fm_action5, fm_action6, fm_action7, fm_action8, fm_action9,
                fm_action10, fm_action11, fm_action12, fm_action13, fm_action14;

extern Byte     last_action0, last_action1, last_action2, last_action3,
                last_action4, last_action5, last_action6, last_action7, last_action8,
                last_action9, last_action10, last_action11, last_action12, last_action13,
                last_action14;

extern Word     fm_analog1, fm_analog2, fm_analog3, fm_analog4, fm_analog5, 
                fm_analog6, fm_analog7, fm_analog11, fm_analog12, fm_analog13,
                fm_analog14, fm_analog21, fm_analog22, fm_analog23, fm_analog24;


extern Byte     lastmsgU201, lastmsgU202;
extern UNION16  lastmsgU401, lastmsgU402, lastmsgU403, lastmsgU501, lastmsgU601, lastmsgU605;
extern SPI24    lastmsgU404, lastmsgU405;


extern Byte     countercheck;   // counter of cycles 30 ms; value is <0,7>                  

extern TASK     arrayTask[SIZE_TASK_ARRAY];
extern Byte     actualTask;     // pointer to actualy solved task in arrayTask                  
/******************************************************************************
* Module            : void u202_start(void)
* Description       : set-up u202 device in depence on User manual
* Global Data       : none
* Static Global Data: none
* Returns           : none
* Arguments         : none
* Special Issues    : none
******************************************************************************/

void U202_start(void)
{
Byte        temp8;
UNION16     temp16;
SPI24       temp24;
  
  while(!PITTF_PTF0);
  PITTF = 0x01;               // timer 0 flag down
  PT0AD1_PT0AD114 = 0;		    // CSB U202 - PAD22
  temp8 = ReadWriteSPI8bit(U202_MCR, U202_WRITE, U202_NORMAL);	// normal mode active
  PT0AD1_PT0AD114 = 1;
        
  CSB_U202 = 0;
  // Configure L0, L1 both level and L2, L3 pins both level sensitive
  temp8 = ReadWriteSPI8bit(U202_WUR, U202_WRITE, 0x0F);
  CSB_U202 = 1;

  WAIT_300ns;

  PT0AD1_PT0AD114 = 0;
  temp8 = ReadWriteSPI8bit(U202_TIM, U202_WRITE, U202_350MS);     // feed watch dog
  PT0AD1_PT0AD114 = 1;
  while(!PITTF_PTF0);
}
/******************************************************************************
* Module            : void u201_start(void)
* Description       : set-up u201 device in depence on User manual
* Global Data       : none
* Static Global Data: none
* Returns           : none
* Arguments         : none
* Special Issues    : none
******************************************************************************/

void U201_start(void)
{
Byte        temp8;
UNION16     temp16;
SPI24       temp24;        
    
    PTS_PTS5 = 0;		// CSB U201 - PTS5
    temp8 = ReadWriteSPI8bit(U201_MCR, U201_WRITE, U201_NORMAL);    // normal mode active
    PTS_PTS5 = 1;
    PTS_PTS5 = 0;
    temp8 = ReadWriteSPI8bit(U201_CAN, U201_WRITE, U201_CAN_STANDARD);
    PTS_PTS5 = 1;
}

/******************************************************************************
* Module            : void u401_start(void)
* Description       : set-up u401 device in depence on User manual
* Global Data       : none
* Static Global Data: none
* Returns           : none
* Arguments         : none
* Special Issues    : none
******************************************************************************/

void U401_start(void)
{
Byte        temp8;
UNION16     temp16;
SPI24       temp24;
  
  RST_U401 = 1;         // RST signal is pulling up - PAD9
        for (temp8=0; temp8 < WAIT_10; temp8++);

		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_SOCHLR_HS0;
        temp16.BYTES.lsB = (U401_SOCH_70A | U401_SOCL_8p6A);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_SOCHLR_HS1;
        temp16.BYTES.lsB = (U401_SOCH_70A | U401_SOCL_8p6A);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_SOCHLR_HS2;
        temp16.BYTES.lsB = (U401_SOCH_70A | U401_SOCL_8p6A);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_SOCHLR_HS3;
        temp16.BYTES.lsB = (U401_SOCH_70A | U401_SOCL_8p6A);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_CDTOLR_HS0;
        temp16.BYTES.lsB = (U401_OCLT_DIS_DNU | U401_OCL_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_CDTOLR_HS1;
        temp16.BYTES.lsB = (U401_OCLT_DIS_DNU | U401_OCL_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_CDTOLR_HS2;
        temp16.BYTES.lsB = (U401_OCLT_DIS_DNU | U401_OCL_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_CDTOLR_HS3;
        temp16.BYTES.lsB = (U401_OCLT_DIS_DNU | U401_OCL_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_DICR_HS0;
        temp16.BYTES.lsB = (U401_DIR_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_DICR_HS1;
        temp16.BYTES.lsB = (U401_DIR_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_DICR_HS2;
        temp16.BYTES.lsB = (U401_DIR_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_DICR_HS3;
        temp16.BYTES.lsB = (U401_DIR_DIS);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        temp16.BYTES.msB = U401_UOVR;
        temp16.BYTES.lsB = (U401_UV_EN | U401_OV_EN);
        temp16 = ReadWriteSPI16bit(temp16);
		CSB_U401 = 1;
        WAIT_300ns;         //  waiting at least 300ns between CS - see datasheet MC33580
		CSB_U401 = 0;              // CSB U401 - PORTB3
        lastmsgU401.BYTES.msB = U401_OCR0;
        lastmsgU401.BYTES.lsB = (U401_NO_HS);
        temp16 = ReadWriteSPI16bit(lastmsgU401);
		CSB_U401 = 1;
}
/******************************************************************************
* Module            : void u402_start(void)
* Description       : set-up u402 device in depence on User manual
* Global Data       : none
* Static Global Data: none
* Returns           : none
* Arguments         : none
* Special Issues    : none
******************************************************************************/

void U402_start(void)
{
Byte        temp8;
UNION16     temp16;
SPI24       temp24;
  
  RST_U402 = 1;
        for (temp8=0; temp8 < WAIT_10; temp8++);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -