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

📄 subctrl.c

📁 日立单片机H8S2144例程.包括AD,DA等程序(用于光源)但对于H8S2144使用者来说有很大的帮助.
💻 C
字号:

#include "H8S2144.h"						
#include "Global.h"							
#include "Data.h"
#include "Extern.h"


short  select_ch(short ch);  
short  range_out(short range, short drv);  //
short  onoff_out(short pixel, short onoff, short cw);  //
short  duty_out(short pixel, short duty);  //unit 0.5%
short  mon_select(short mon);  //


//*****SELECT CHANNEL ROUTINE*******
short  select_ch(short ch)  
{
	unsigned char chr;

	if (ch < 1 || ch > MAX_CH) {
		return ERR_CH ;
	}

	chr = (unsigned char)(ch & 0x0f);
	CH_SELECT = chr;


	chr	= P9DR;
	P9DR  = chr | 0x04;

	wait(20);

	return NO_ERR ;
}


//*****OnOff CHANNEL ROUTINE*******
short  range_out(short range, short pole)  //
{
	unsigned char chr ;

	switch(range) 
	{
	case 1:
		chr = RANGE_2mA;
		break;
	case 2:
		chr = RANGE_200uA;
		break;
	case 3:
		chr = RANGE_20uA;
		break;
	default:
		return ERR_RANGE;
	}

	if (pole == 0) {
		chr |= DRV_PLUS;
	}
	else {
		chr |= DRV_MINUS;
	}

	DATA_OUT = chr;
	wait(5);

	chr = STB_RANGE;

	STB_CTRL = chr ;
	wait(5);
	STB_CTRL = 0x00 ;
	wait(5);

	return NO_ERR;
 }

//*****OnOff CHANNEL ROUTINE*******
short  onoff_out(short pix, short onoff, short cw)  //
{
	unsigned char chr ;

	chr = 0;

	if (onoff == 1) {
		switch(pix)
		{
		case 1:
			chr |= PIX1_ON;
			break;
		case 2:
			chr |= PIX2_ON;
			break;
		case 3:
			chr |= PIX3_ON;
			break;
		case 4:
			chr |= PIX4_ON;
			break;
		default:
			chr |= PIXALL_ON;
			break;
		}
	}

	if (cw == 1) {
		switch(pix)
		{
		case 1:
			chr |= PIX1_CW;
			break;
		case 2:
			chr |= PIX2_CW;
			break;
		case 3:
			chr |= PIX3_CW;
			break;
		case 4:
			chr |= PIX4_CW;
			break;
		default:
			chr |= PIXALL_CW;
			break;
		}
	}

	DATA_OUT = chr;
	wait(5);

	chr = STB_CWONOFF;

	STB_CTRL = chr ;
	wait(5);
	STB_CTRL = 0x00 ;
	wait(5);

	return NO_ERR;
 }

//*****SELECT CHANNEL ROUTINE*******
short  duty_out(short pixel, short duty)  //unit 0.5%
{
	unsigned char chr;

	chr = (unsigned char) (duty) ;
	DATA_OUT = chr;
	wait(5);

	switch(pixel)
	{
	case 1:
		chr = STB_R;
		break;
	case 2:
		chr = STB_G;
		break;
	case 3:
		chr = STB_B;
		break;
	case 4:
		chr = STB_D;
		break;
	default:
		return ERR_DUTY;
	}

	STB_CTRL = chr ;
	wait(5);
	STB_CTRL = 0x00 ;
	wait(5);

	return NO_ERR;
 }

//*****SELECT CHANNEL ROUTINE*******
short  mon_select(short mon)  //
{
	unsigned char chr;

	switch(mon)
	{
	case 1:
		chr = MON_IR;
		break;
	case 2:
		chr = MON_VR;
		break;
	case 3:
		chr = MON_IG;
		break;
	case 4:
		chr = MON_VG;
		break;
	case 5:
		chr = MON_IB;
		break;
	case 6:
		chr = MON_VB;
		break;
	case 7:
		chr = MON_ID;
		break;
	case 8:
		chr = MON_VD;
		break;
	default:
		return ERR_MON;
	}

	MON_SELECT = chr;

	wait(5);
	return NO_ERR;
 }

⌨️ 快捷键说明

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