拿A/D转化为例。
#define rADCCON(*(volatile unsigned*)0x58000000) //ADC操控寄存器 #define rADCTSC(*(volatile unsigned*)0x58000004) //ADC触摸屏操控寄存器 #define rADCDLY(*(volatile unsigned*)0x58000008) //ADC发动或距离延时寄存器 #define rADCDAT0(*(volatile unsigned*)0x5800000c) //ADC转化数据寄存器0 #define rADCDAT1(*(volati1e unsigned*)0x58000010) //ADC转化数据寄存器 void AD_Init(unsigned char ch){ rADCDLY=100; //ADC发动或距离延时 rADCTSC=0; //挑选ADC形式 rADCCON=(1<<14)|(49<<6)|(ch<<3)| (0<<2)|(0<<1)|(0); //设置ADC操控寄存器 } ......
关于设置ADC操控寄存器指令 : rADCCON=(1<<14)|(49<<6)|(ch<<3)| (0<<2)|(0<<1)|(0)
其意义是:
1左移(以0位为准)14位,即设置ADCCON中的PRSCEN为1:使能;
49左移6位,即前置分频器 分频数值为50(当前置分频器数值为N时,分频数值为N+1);
ch是变量,输入通道挑选设置;
备用形式为正常形式;
制止读操作发动;
AD转化不发动。