中颖单片机6488总结

1. 配置字

1.OSC1 12M,

2.OSC1为32768.OSC2为内部12M

3.OSC1为32768 OSC2 外部晶振400K--12M

2. OSC时钟

开启OSC2的时候需要等待片刻。配置OSC2作为SYSCLK

PLLCON开启锁相环,只有48M的二分频。

3.开启校准功能

实际测试发现时钟不准确,需要校准。

4.PWM配置

	PWM1PH = 2000>>8;
	PWM1PL = 2000%256;
	PWM1DH = 1500>>8;
	PWM1DL = 1500%256;
	PWM1CON = 0x81;

配置周期寄存器,占空比寄存器,开启PWM,配置占空比是高电平还是低电平。

5.串口配置

// bref: ´®¿Ú³õʼ»¯
// para: 
// note:
static void uart_init(void)
{
	SCON = 0x50;
	/*???????,???9600*/
	/* ????:(int)X=FSY/(16*???) ;  SBRT=32768-X  ;   SFINE=(FSY/???)-16*X   FSY=24M*/
	SBRTH=0xFF;
	SBRTL=0xF3;
	SFINE=0x04;
}

x = FSY/(16*波特率)  SBRT = 32768-x.  SPINE = (FSY/波特率)-16*x

SBRTH 最高位是使能位。

测试波特率正常

使用printf 需要实现 

char putchar(char c)
{
	SBUF = c;
    while(!TI);
    TI=0;
}

和arm的不一样,这个可以在stdio.h中看到接口。

6  ADC(20位)

搞了半天发现还需要开启ADC的参考电压。

static void adc_init(void)
{
	ADCON = 0x00;  //ADON, VDD as vref, no trigger
	/***************************************************************************************
	24M SYSCLK, 100ksps
	****************************************************************************************/
	ADT = 136; 
	// ADREF Ñ¡ÔñÍⲿ²Î¿¼
	//ADCON |= 1<<4;
	// ÅäÖÃP1.1 -- P1.2 ΪAIN0+ AIN0-
	ADCH |= 0x01;
	//
	ADCDS |= 0x01;
	// PGA 64±¶·Å´ó
	PGAM = 0xC0|(1<<2);
	// ¿ªÆôPGA
}

使能P1.1--P1.2差分输入。

开启PGA功能。

猜你喜欢

转载自blog.csdn.net/C_ROOKIES/article/details/110160769