?? max1249.c
字號:
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\def.h"
#include "..\inc\max1249.h"
/*
H/W CONNECTIONS
SCLK :PE5
DIN :PE4
DOUT :PG0
*/
#define SCLK_H() rPDATE=rPDATE|0x20 //CKE:PE5
#define SCLK_L() rPDATE=rPDATE&~0x20
#define SCLK_HL() SCLK_H();SCLK_H();SCLK_L() //200ns
#define DIN_H() rPDATE=rPDATE|0x10 //nGCS7: PE4
#define DIN_L() rPDATE=rPDATE&~0x10
#define DOUT() (rPDATG & 0x1) //EINT0: PG0
U32 ReadMax1249(U32 ch);
void Test_Max1249(void)
{
//Port configuration:PE4,PE5=output port, PG0=input port
rPCONE=rPCONE &~0x30|0x0;
rPCONG=rPCONG &~0x3 |0x0;
SCLK_L();
DIN_L();
Uart_Printf("The ADC_IN are adjusted to the following values\n");
Uart_Printf("Push any key to exit!!!\n");
//rCLKCON=0x3ff8;
while(Uart_GetKey()==0)
{
Uart_Printf("A0=%04xh ",ReadMax1249(0));
Uart_Printf("A1=%04xh ",ReadMax1249(1));
Uart_Printf("A2=%04xh ",ReadMax1249(2));
Uart_Printf("A3=%04xh\n",ReadMax1249(3));
}
}
U32 ReadMax1249(U32 ch)
{
int saveINTMSK;
U32 sel2[4]={0x0,0x1,0x0,0x1};
U32 sel1[4]={0x0,0x0,0x1,0x1};
U32 sel0[4]={0x1,0x1,0x0,0x0};
int i,j;
U32 data=0;
saveINTMSK=rINTMSK;
rINTMSK=~(BIT_GLOBAL);
SCLK_L();
DIN_H();
for(i=0;i<4;i++);
SCLK_HL();
if(sel2[ch]){DIN_H();} else {DIN_L();} //channel select
for(i=0;i<4;i++); //200ns
SCLK_HL();
if(sel1[ch]){DIN_H();} else {DIN_L();}
for(i=0;i<4;i++); //200ns
SCLK_HL();
if(sel0[ch]){DIN_H();} else {DIN_L();}
for(i=0;i<4;i++); //200ns
SCLK_HL();
DIN_H(); //unipolar 0 ~ 3.3V
for(i=0;i<4;i++); //200ns
SCLK_HL();
DIN_H(); //single ended, (VIN-0V)
for(i=0;i<4;i++); //200ns
SCLK_HL();
DIN_H(); //external clock mode
for(i=0;i<4;i++); //200ns
SCLK_HL();
DIN_H();
for(i=0;i<4;i++); //200ns
SCLK_HL();
DIN_L();for(i=0;i<4;i++); //200ns
for(j=0;j<16;j++)
{
SCLK_HL();
for(i=0;i<4;i++); //200ns
data=(data<<1)|DOUT();
}
rINTMSK=saveINTMSK;
//return (data);
return (data>>6);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -