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

📄 ipic.c

📁 16F876 控制 LM629 的原程序.
💻 C
字号:
#include "i_LM629.h"
#include "cmd_LM629.h"
#include "iPIC.h"
#include "ctype.h"
#include "envcar.h"

//Mettre les bonnes broches !
//#use fixed_io(a_outputs=B_DATA, B_CLOCK,PIC_OUT)
#use fast_io(A)
void transfAff()
{
	unsigned int8 car=0;	//pour v閞if bonne com.
	unsigned int8 data=0;	//pour donn閑 dela commande
	unsigned int8 cmd=0;	//code de la commande
	unsigned int8 verif=0; //octet de v閞ification
	char s_Action[5]="ACT.";


	// Attente et r閏up閞ation du 1er octet de v閞ification
	verif=readOctet();	//(1)
	If (verif == BEGIN_TRANS)
	{
		//Si 1er octet  OK, on renvoie la valeur au PICBASIC (v閞ification que la transmission se fait correctement dans les 2 sens)
		strcpy(s_Action,"ACK");
		envoiStr(s_Action,4);
		sendOctet(BEGIN_TRANS); //(2)
		strcpy(s_Action,"CMOK");
		envoiStr(s_Action,4);
		// R閏up de l'octet de commande			
		cmd=readOctet();		//(3)
		strcpy(s_Action,"TYPE");
		envoiStr(s_Action,4);
		sendOctet(BEGIN_TRANS);
		//R閏up de l'octet de donn閑
		data=readOctet();		//(4)
		strcpy(s_Action,"P.OK");
		envoiStr(s_Action,4);

		//Recherche de la commande
		switch(cmd)
		{
			case CMD_SET_VITESSE :		//= 5
				strcpy(s_Action,"VIT.");
				envoiStr(s_Action,4);
				setVitesse(data);
				sendOctet(data);	
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_SET_ACCEL :		//= 6
				strcpy(s_Action,"ACC.");
				envoiStr(s_Action,4);
				setAccel(data);
				sendOctet(data);		//(5)
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_AVANCE :			//= 1
				strcpy(s_Action,"AVT");
				envoiStr(s_Action,4);
				avance(data,AVANCE_AV); 
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_RECULE :			//= 2
				strcpy(s_Action,"REC.");
				envoiStr(s_Action,4);
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_TRN_GAUCHE :		//= 3
				strcpy(s_Action,"GAU.");
				envoiStr(s_Action,4);
				tourne(data,TOURNE_G);
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_TRN_DROITE :		//= 4
				strcpy(s_Action,"DROI");
				envoiStr(s_Action,4);
				tourne(data,TOURNE_D);
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_STOP :				//= 7
				strcpy(s_Action,"STOP");
				envoiStr(s_Action,4);
				stop();
				data = 0;
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_STOP_TEMP :		//= 8
				strcpy(s_Action,"STMP");
				envoiStr(s_Action,4);
				data = stop_temp();
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_RESUME :			//= 9
				strcpy(s_Action,"RES.");
				envoiStr(s_Action,4);
				resume();
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_PROPORTIONNEL :			//= 10
				strcpy(s_Action,"PROP");
				envoiStr(s_Action,4);
				regler_Proportionnel(data);
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_INTEGRAL :			//= 11
				strcpy(s_Action,"INTE");
				envoiStr(s_Action,4);
				regler_integral(data);
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_DERIVEE :			//= 12
				strcpy(s_Action,"DERV");
				envoiStr(s_Action,4);
				regler_derivee(data);
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			case CMD_INTLIMIT :			//= 13
				strcpy(s_Action,"INTL");
				envoiStr(s_Action,4);
				regler_intlimit(data);
				sendOctet(data);
				strcpy(s_Action,"F OK");
				envoiStr(s_Action,4);
				break;
			default :
				sendOctet(CMD_INCONNUE);
				return;
				break;
		}
	}	

	else
	{
		strcpy(s_Action,"ERR!");
		envoiStr(s_Action,4);
		sendOctet(verif);
	}

}

// Lit un octet issu du PICBASIC
unsigned int8 readOctet()
{
	
	unsigned int8 res;
	unsigned int8 i;

	res = 0x00;

	set_tris_a(0xFF);

	// Attente du cr閚eau de d閜art, lanc

⌨️ 快捷键说明

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