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

📄 mc33993.h

📁 客车车身控制模块 分为仪表部分 前控左 前控右 尾控和中控程序模块
💻 H
📖 第 1 页 / 共 2 页
字号:
                                      //10100 SP5端口
                                      //10101 SP6端口
                                      //10110 SP7端口
}

/////////////////////////////////////////////////////////////
//定义:      void  Calibration_33993(void) ; 
//描述:      对MC33993进行时钟校准
//参量:      
//返回值:         
/////////////////////////////////////////////////////////////
void  Calibration_33993(void) 
{
    void RD33993(unsigned char data1, unsigned char data2,unsigned char data3);
    RD33993(0x0b,0x00,0x00);
                                      //寄存器名:时钟校准寄存器
                                      //寄存器位:23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
                                      //位定义:  0  0  0  0  1  0  1  1  X  X  X  X  X  X  X X X X X X X X X X
                                      //赋值:    0  0  0  0  1  0  1  1  0  0  0  0  0  0  0 0 0 0 0 0 0 0 0 0 
                                      //说明:使用该寄存器使能时钟校准(16-23为地址位,该地址为时钟校准寄存器地址。
                                      //      0-15为任意位,可加入0或1任意值不影响使用。
 }

/////////////////////////////////////////////////////////////
//定义:      void  Sleep_33993(void) ; 
//描述:      对MC33993进行休眠操作
//参量:      
//返回值:         
/////////////////////////////////////////////////////////////
void  Sleep_33993(void) 
{
    void RD33993(unsigned char data1, unsigned char data2,unsigned char data3);
    RD33993(0x0c,0x00,0x38);
                                      //寄存器名:使能休眠寄存器
                                      //寄存器位:23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
                                      //位定义:  0  0  0  0  1  1  0  0  X  X  X  X  X  X  X X X X 1 1 1 0 0 0 
                                      //赋值:    0  0  0  0  1  1  0  0  0  0  0  0  0  0  0 0 0 0 1 1 1 0 0 0   
                                      //说明:使用该寄存器使能芯片休眠(16-23为地址位,该地址为使能休眠寄存器地址。
                                      //      6-15为任意位,可加入0或1任意值不影响使用。0-5为中断唤醒时间设置,下有详细说明
                                      //位定义: 5  4  3   中断唤醒时间
                                      //         0  0  0   32 ms
                                      //         0  0  1   64 ms
                                      //         0  1  0   128 ms
                                      //         0  1  1   256 ms
                                      //         1  0  0   512 ms
                                      //         1  0  1   1.024 s
                                      //         1  1  0   2.048 s
                                      //         1  1  1   4.096 s
}

/////////////////////////////////////////////////////////////
//定义:      void  RST_33993(void) ; 
//描述:      对MC33993进行复位操作
//参量:      
//返回值:         
/////////////////////////////////////////////////////////////
void  RST_33993(void) 
{
    void RD33993(unsigned char data1, unsigned char data2,unsigned char data3);
    RD33993(0x7f,0x00,0x00);
                                      //寄存器名:复位寄存器
                                      //寄存器位:23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
                                      //位定义:  0  1  1  1  1  1  1  1  X  X  X  X  X  X  X X X X X X X X X X
                                      //赋值:    0  1  1  1  1  1  1  1  0  0  0  0  0  0  0 0 0 0 0 0 0 0 0 0 
                                      //说明:使用该寄存器使能复位(16-23为地址位,该地址为复位寄存器地址。
                                      //      0-15为任意位,可加入0或1任意值不影响使用。
}
//**********************M33993spi功能函数**********************
////////////////////////////////////////////////////////////
//定义:       usnigned char RD33993(unsigned char CommandWord);
//描述:       对MC33993进行读写操作
//参量:       unsigned int CommandWord:要写入的命令字
//返回值:     读出的返回状态值 
////////////////////////////////////////////////////////////
void RD33993(unsigned char data1, unsigned char data2,unsigned char data3)
{
    MC33993_CS=0;							//片选信号
     
    SPDR = data1;               	// 发送第一字节
    while((SPSCR&0x80)==0);     	// 等待接收寄存器满
    SP_status.Byte = SPDR;         	// 读取 状态
    SPDR = data2;               	// 发送第二字节
    while((SPSCR&0x80)==0);    		// 等待接收寄存器满
    SGH_status.Byte = SPDR;         // 读取 状态     
    SPDR = data3;               	// 发送第三字节
    while((SPSCR&0x80)==0);     	// 等待接收寄存器满
    SGL_status.Byte = SPDR;         // 读取 状态     
    
	SP_status.Byte=SP_status.Byte<<2;
	SP_status.Bit.BIT0=SGH_status.Bit.BIT6;
	SP_status.Bit.BIT1=SGH_status.Bit.BIT7;
	SGH_status.Bit.BIT6=0;
	SGH_status.Bit.BIT7=0;
									//SP_status:	SP7	SP6	SP5	SP4 SP3 SP2 SP1 SP0
									//SGH_status:	NC	NC	SG13 SG12 SG11 SG10 SG9 SG8
									//SGL_status:	SG7	SG6	SG5	 SG4  SG3  SG2  SG1	SG0
    
    MC33993_CS=1;                    		//片选信号  
    
}

⌨️ 快捷键说明

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