资源简介
CS5532程序开发,适用于电子测量和工业控制-CS5532 program development, apply to electronic measurement and industrial control
代码片段和文件信息
#include
//#include
#include
//#include
//#include “common.h“
#include “cs5532.h“
//#include “sLcd.h“
#include “LCD_12864.h“
#include “LED.h“
#define nop() asm volatile(“nop“::)
#define uint unsigned int
#define uchar unsigned char
unsigned long debug_register;
void delay20ms() //20毫秒延时函数
{ uint ij=0;
for (i=0;i<20;i++);
for (j=0;j<2282;j++);
}
//------------------------------------------------------------------------------------------
static void dlyus(unsigned int len)
{
do{len--;}while(len>0);
}
//------------------------------------------------------------------------------------------
//写命令函数
//cmd是相应的命令
void CsCmd(unsigned char cmd)
{
unsigned char i=8;
CSSCK_L;
dlyus(CSDLY*10);
CSCS_L;
dlyus(CSDLY);
for(;i>0;i--)
{
if(cmd&0x80) CSSDI_H;
else CSSDI_L;
dlyus(CSDLY);
CSSCK_H;
dlyus(CSDLY);
CSSCK_L;
cmd<<=1;
}
CSCS_L;
CSSCK_L;
CSSDI_L;
}
//------------------------------------------------------------------------------------------
//写寄存器函数
//cmd为相应的命令data是写入的值
static void CsWrReg(unsigned char cmdunsigned long data)
{
unsigned char i=8;
CSSCK_L;
dlyus(CSDLY*10);
CSCS_L;
for(;i>0;i--)
{
if(cmd&0x80) CSSDI_H;
else CSSDI_L;
dlyus(CSDLY*2);
CSSCK_H;
dlyus(CSDLY*2);
CSSCK_L;
cmd<<=1;
}
dlyus(CSDLY);
for(i=32;i>0;i--)
{
if(data&0x80000000) CSSDI_H;
else CSSDI_L;
dlyus(CSDLY*2);
CSSCK_H;
dlyus(CSDLY*2);
CSSCK_L;
data<<=1;
}
CSCS_L;
CSSCK_L;
CSSDI_L;
}
//------------------------------------------------------------------------------------------
//读寄存器函数
//cmd为相关命令
//返回相应寄存器的值
unsigned long CsRdReg(unsigned char cmd)
{
unsigned char i=8;
unsigned long reg=0;
dlyus(CSDLY);
CSSCK_L;
CSCS_L;
if(cmd)
{
for(;i>0;i--)
{
if(cmd&0x80) CSSDI_H;
else CSSDI_L;
dlyus(CSDLY);
CSSCK_H;
dlyus(CSDLY);
CSSCK_L;
cmd<<=1;
}
}
CSSDI_L;
for(i=31;i>0;i--)
{
dlyus(CSDLY);
CSSCK_H;
dlyus(CSDLY);
if(CSPIN&(1< CSSCK_L;
reg<<=1;
}
CSSCK_L;
dlyus(CSDLY);
CSSCK_H;
CSCS_L;
CSSCK_L;
CSSDI_L;
return reg;
}
//------------------------------------------------------------------------------------------
//单次AD转换的函数
//csr为相应的通道只能是0或者1
//返回本次转换的结果如果返回-1说明AD转换超时
unsigned long CsSgConv(unsigned char csr)
{
unsigned long res=0;
unsigned int timeout=65532;
csr<<=3;
CsCmd(0x80|csr);
while((CSPIN&(1<0)) timeout--;
if(timeout<=0) return -1;
dlyus(CSDLY);
CsCmd(0);
res=CsRdReg(0x0);
//CsCmd(0xc0); //continuously
CSSCK_L;
CSSDI_L;
CSCS_L;
return res;
}
//-------------------------------------------------------------------
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-07-12 12:02 cs5532
文件 606 2009-07-12 01:00 cs5532\ch595.h
文件 5622 2009-07-12 11:43 cs5532\CS5532.c
文件 13058 2009-07-12 12:02 cs5532\CS5532.cof
文件 8155 2009-07-12 12:02 cs5532\CS5532.dbg
文件 358 2009-07-12 12:02 cs5532\CS5532.dp2
文件 886 2009-07-12 12:02 cs5532\cs5532.h
文件 11420 2009-07-12 12:02 cs5532\CS5532.hex
文件 112867 2009-07-12 12:02 cs5532\CS5532.lis
文件 11 2009-07-12 12:02 cs5532\CS5532.lk
文件 78064 2009-07-12 12:02 cs5532\CS5532.lst
文件 887 2009-07-12 12:02 cs5532\CS5532.mak
文件 4190 2009-07-12 12:02 cs5532\CS5532.mp
文件 30448 2009-07-12 12:02 cs5532\CS5532.o
文件 1033 2009-07-12 12:02 cs5532\cs5532.prj
文件 47337 2009-07-12 12:02 cs5532\CS5532.s
文件 73 2009-07-12 11:28 cs5532\CS5532.SRC
文件 5622 2009-07-12 11:42 cs5532\CS5532._c
文件 880 2009-07-11 19:47 cs5532\cs5532._h
文件 3810 2009-07-12 12:00 cs5532\CS5532_cof.aps
文件 358 2009-07-12 11:59 cs5532\cs5532_cof.aws
文件 439 2008-10-29 19:02 cs5532\encoder.h
文件 3482 2009-07-12 11:09 cs5532\LCD_12864.h
文件 1864 2009-07-12 11:27 cs5532\LED.h
----------- --------- ---------- ----- ----
331470 24
- 上一篇:如何用C语言编写步进电机驱动程序
- 下一篇:CAN总线源代码c语言
评论
共有 条评论