-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuser.c
71 lines (58 loc) · 1.83 KB
/
user.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <xc.h>
#include <stdint.h> /* For uint16_t definition */
#include <stdbool.h> /* For true/false definition */
#include <timer.h>
//#include "tests.h"
//#include "atp-asserv.h"
//#include "atp.h"
#include "main.h"
/******************************************************************************/
/* User Functions */
/******************************************************************************/
void ConfigureOscillator(void)
{
// Configure PLL prescaler, PLL postscaler, PLL divisor
PLLFBDbits.PLLDIV = 150; // M=152
CLKDIVbits.PLLPRE = 5; // N1=7
CLKDIVbits.PLLPOST = 0; // N2=2
/* Fosc = M/(N1.N2)*Fin
* Fin : 7.37MHz (quartz interne)
* Fosc à 80 MHZ (ne doit pas dépasser 80 MHZ)
* la solution la plus proche est 152*7.37/(7*2) = 80.017
* attention, cela entraine donc une FCY et une FPériphériques à 40 MHZ
*/
while (!OSCCONbits.LOCK); // attente que la PLL soit lockée sur se nouvelle configuration.
}
// initialize all things
void Init_All(int callback){
/* Configure the oscillator for the device */
ConfigureOscillator();
/* Initialize IO ports and peripherals */
motion_free();
InitTimers();
//Init_Communication_RasPi();
// Position Pos0 = {0,0,0};
// set_position(Pos0);
__delay_ms(200);
Init_PWM();
// Init_QEI();
// Init_IT_AX12();
Gestion_IO_AU_Init();
__delay_ms(500);
// Init_ax12();
// InitSick_VBat();
Init_Ultrasons();
// Init_Evitement();
// motion_init(); // start asserv
// __delay_ms(30);
// set_position(Pos0);
TRISAbits.TRISA9 = 1;
}
/*
void writeStringToUART (const char *msg)
{
while(*msg) {
WriteUART1(*msg++);
}
}
*/