?? constante.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 + -