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

📄 constante.h

📁 Who to use ECAN network with dsPIC33F, Microchip microcontroller.
💻 H
字号:
/** *****************************************
           CONSTANTE.H
***************************************** **/

#ifndef _CONSTANTE_H_
#define _CONSTANTE_H_

/**************************
SOMMAIRE :
  1. Oscillateur
  2. Ports
  3. Servo
  4. Moteur CC
  5. QEI
  6. Bus ECAN
  7. RS232
**************************/

/* 1. Oscillateur */
//	#define FOSC 80e6
	#define FOSC 64e6
	#define FCY FOSC/2
	#define F_TMR1 1.0e+004
	#define PR1_VAL (FCY/(F_TMR1))
	#define MS_TIMER1 F_TMR1/1e3
	
/* 2. Ports */
#ifdef PINCE
	#define LED LATAbits.LATA6
#else
	#define LED LATAbits.LATA0
#endif
	#define SERVO_0 LATAbits.LATA0               /* Signal du servo_0 sur RA0 */	#define SERVO_1 LATAbits.LATA1               /* Signal du servo_1 sur RA1 */
	
	#define TRIS_SERVO_0 TRISAbits.TRISA0
	#define TRIS_SERVO_1 TRISAbits.TRISA1
	
	#define ENTREE 1
	#define SORTIE 0
	#define	TRUE		1
	#define	FALSE		0

/* 3. Servo */
	#define PINCE_OUVERTE 0.9*MS_TIMER1;
	#define PINCE_FERMEE  1.4*MS_TIMER1;
	
	#define DISTRIB 0xDB
	#define CENTRE  0xCE

/* 4. Moteur CC */
	#define F_PWM 20e3
	#define KP 20.0
	
	#define VITESSE_MOTEUR_CC_0 FCY/F_PWM
	#define VITESSE_MOTEUR_CC_MAX VITESSE_MOTEUR_CC_0
	#define VITESSE_CONSIGNE_MAX 60
	
	#define PAS_VIS 3.0
	#define NB_PAS_TOUR 24.0
	
	#define TRIS_FIN_DE_COURSE TRISBbits.TRISB10
	#define FIN_DE_COURSE PORTBbits.RB10
	
/* 5. QEI */
	#define TRIS_QEI1B TRISBbits.TRISB5
	#define TRIS_QEI1A TRISBbits.TRISB4
	#define VALEUR_MAXI_QEI 0xFFFF
	#define VALEUR_INIT_QEI 0x7FFF
	
/* 6. Bus ECAN */
	/* CAN Baud Rate Configuration 		*/
	#define FCAN  	FCY 
	#define BITRATE 1.0e6  
	//Microchip
	//#define NTQ 	20		// 20 Time Quanta in a Bit Time
	//Nono
	#define NTQ 	16		// 16 Time Quanta in a Bit Time
	#define BRP_VAL		((FCAN/(2*NTQ*BITRATE))-1)
	
	#define CAN_MSG_DATA	0x01 // message type 
	#define CAN_MSG_RTR		0x02 // data or RTR
	#define CAN_FRAME_EXT	0x03 // Frame type
	#define CAN_FRAME_STD	0x04 // extended or standard

	/* message structure in RAM */
	typedef struct{
		/* keep track of the buffer status */
		unsigned char buffer_status;
		/* RTR message or data message */
		unsigned char message_type;
		/* frame type extended or standard */
		unsigned char frame_type;
		/* buffer being used to reference the message */
		unsigned char buffer;
		unsigned char filter;
		/* 29 bit id max of 0x1FFF FFFF 
		*  11 bit id max of 0x7FF */
		unsigned long id; 
		/* message data */
		unsigned char data[8];	
		/* received message data length */
		unsigned char data_length;
	}mID;
	
	
	/* exemple :
	doucbledecompose toto;
	unsigend char donnee;
	toto.value = 1.45e3;
	donne = toto.OCTETS.octet0;
	*/
	typedef union {
	  double value;
	  struct{
	    unsigned char octet0;       
	    unsigned char octet1;                                    
	    unsigned char octet2;                                      
	    unsigned char octet3;                               
	  } OCTETS;
	} doucbledecompose;

/* 7. RS232 */
#define BAUD_RATE	40000000/(16*22)	// vitesse de la liaison s閞ie
#define U2BRG_VAL ((FCY/(16.0*BAUD_RATE))-1)

#endif

⌨️ 快捷键说明

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