Compare commits
10 commits
5ec32ced3e
...
5f5fa1a099
Author | SHA1 | Date | |
---|---|---|---|
5f5fa1a099 | |||
3376dbff59 | |||
a1d5cd57d8 | |||
2a1180c521 | |||
9606282533 | |||
d9a4ae852d | |||
820a3db260 | |||
b2f1785052 | |||
398575d7c5 | |||
b7d418f6ad |
20 changed files with 443 additions and 494 deletions
BIN
assets/raspberry_config.jpg
Normal file
BIN
assets/raspberry_config.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 599 KiB |
BIN
assets/raspberry_uart.jpg
Normal file
BIN
assets/raspberry_uart.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
BIN
assets/resultcmd0.png
Normal file
BIN
assets/resultcmd0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.6 KiB |
174
driver/uart.c
174
driver/uart.c
|
@ -2,83 +2,156 @@
|
||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
//faire GPIO
|
//faire GPIO
|
||||||
|
|
||||||
|
void (* pFncUART) (uint8_t data); /* d<>claration d<>un pointeur de fonction */
|
||||||
|
|
||||||
char data1 = 0x00;
|
void MyUART_Init_Periph (void (* ptrFonction)(uint8_t))
|
||||||
char data2 = 0x00;
|
{
|
||||||
char data3 = 0x00;
|
pFncUART = ptrFonction; /* affectation du pointeur */
|
||||||
|
}
|
||||||
|
|
||||||
|
int MyUART_setClockBit(MyUART_Struct_Typedef * UARTStructPtr)
|
||||||
|
{
|
||||||
|
if (UARTStructPtr->UART == USART1)
|
||||||
|
{
|
||||||
|
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
|
||||||
|
USART1->BRR = 72000000/(UARTStructPtr->BaudRate); //Calculating the baudrate depending on the clock frequency
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (UARTStructPtr->UART == USART2)
|
||||||
|
{
|
||||||
|
RCC->APB1ENR |= RCC_APB1ENR_USART2EN;
|
||||||
|
USART2->BRR = 36000000/(UARTStructPtr->BaudRate);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (UARTStructPtr->UART == USART3)
|
||||||
|
{
|
||||||
|
RCC->APB1ENR |= RCC_APB1ENR_USART3EN;
|
||||||
|
USART3->BRR = 36000000/(UARTStructPtr->BaudRate);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t MyUART_GetInterruptNum(USART_TypeDef * UART)
|
||||||
|
{
|
||||||
|
if(UART == USART1)
|
||||||
|
{
|
||||||
|
return USART1_IRQn;
|
||||||
|
}
|
||||||
|
else if(UART == USART2)
|
||||||
|
{
|
||||||
|
return USART2_IRQn;
|
||||||
|
}
|
||||||
|
else if(UART == USART3)
|
||||||
|
{
|
||||||
|
return USART3_IRQn;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyUART_ActiveIT(USART_TypeDef * UART, uint8_t Prio)
|
||||||
|
{
|
||||||
|
uint32_t IRQNumber = MyUART_GetInterruptNum(UART);
|
||||||
|
UART->CR1 |= (USART_CR1_RXNEIE); //Interruption active pour la reception UNIQUEMENT
|
||||||
|
NVIC->IP[IRQNumber] |= (Prio << 0x4); //Prio de l'interruption (p.197 manuel reference RM0008 pour ADC1_IRQn)
|
||||||
|
NVIC->ISER[1] |= (0x1<<(IRQNumber-32)); //Active l'interruption au niveau NVIC (p.119 manuel programming pour ISER[1])
|
||||||
|
}
|
||||||
|
|
||||||
void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr){
|
void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr){
|
||||||
if (UARTStructPtr->UART == USART1)
|
MyUART_setClockBit(UARTStructPtr); //Clock enable and setting the baud.
|
||||||
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
|
UARTStructPtr->UART->CR1 = 0x00; // Clear ALL
|
||||||
if (UARTStructPtr->UART == USART2)
|
UARTStructPtr->UART->CR1 |= USART_CR1_UE;
|
||||||
RCC->APB2ENR |= RCC_APB1ENR_USART2EN;
|
UARTStructPtr->UART->CR1 |= ((UARTStructPtr->length)<<12); //Setting the Length of the data transmitted
|
||||||
if (UARTStructPtr->UART == USART3)
|
|
||||||
RCC->APB2ENR |= RCC_APB1ENR_USART3EN;
|
|
||||||
|
|
||||||
UARTStructPtr->UART->BRR = 72000000/(UARTStructPtr->BaudRate);
|
UARTStructPtr->UART->CR1 &= ~(0x3<<9); //reset CR1 9-10 bits, Parity Selection
|
||||||
UARTStructPtr->UART->CR1 |= ((UARTStructPtr->Wlengh)<<12);
|
if(UARTStructPtr->parity != parityNone) //if parity is enabled
|
||||||
UARTStructPtr->UART->CR1 |= (0x1<<10);
|
{
|
||||||
|
UARTStructPtr->UART->CR1 |= (UARTStructPtr->parity<<9); //depending on the parity changing the 9th bit, and set 10th bit to 1
|
||||||
if(UARTStructPtr->Wparity == parity_none)
|
|
||||||
UARTStructPtr->UART->CR1 &= ~(0x1<<10);
|
|
||||||
if(UARTStructPtr->Wparity == parity_odd)
|
|
||||||
UARTStructPtr->UART->CR1 |= (0x1<<9);
|
|
||||||
if(UARTStructPtr->Wparity == parity_even)
|
|
||||||
UARTStructPtr->UART->CR1 &= ~(0x1<<9);
|
|
||||||
|
|
||||||
if(UARTStructPtr->Wstop == stop1b)
|
|
||||||
UARTStructPtr->UART->CR2 &= ~(0x3<<12);
|
|
||||||
if(UARTStructPtr->Wstop == stop2b){
|
|
||||||
UARTStructPtr->UART->CR2 &= ~(0x3<<12);
|
|
||||||
UARTStructPtr->UART->CR2 |= (0x1<<13);
|
|
||||||
}
|
}
|
||||||
UARTStructPtr->UART->CR1 |= (USART_CR1_TE | USART_CR1_RE | USART_CR1_UE | USART_CR1_RXNEIE);
|
|
||||||
|
|
||||||
NVIC_EnableIRQ(USART1_IRQn);
|
UARTStructPtr->UART->CR2 &= ~(0x3<<12); //reset CR2 13-12 bits, Stop bits
|
||||||
|
if(UARTStructPtr->stop != stopBit1) //if stop bits > 1
|
||||||
|
{
|
||||||
|
UARTStructPtr->UART->CR2 |= (UARTStructPtr->stop<<12); //depending on the stop changing the 12th and 13th bit.
|
||||||
|
}
|
||||||
|
//TxD Enable, RxD Enable, USART Global Enable
|
||||||
|
UARTStructPtr->UART->CR1 |= (USART_CR1_TE | USART_CR1_RE);
|
||||||
|
MyUART_ActiveIT(UARTStructPtr->UART,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyUART_InitGPIO(MyUART_Struct_Typedef * UARTStructPtr)
|
||||||
|
{
|
||||||
|
MyGPIO_Struct_TypeDef rxd,txd;
|
||||||
|
if(UARTStructPtr->UART == USART1)
|
||||||
|
{
|
||||||
|
rxd = (MyGPIO_Struct_TypeDef){GPIOA,10,In_Floating};
|
||||||
|
txd = (MyGPIO_Struct_TypeDef){GPIOA,9,AltOut_Ppull};
|
||||||
|
}
|
||||||
|
else if(UARTStructPtr->UART == USART2) {
|
||||||
|
rxd = (MyGPIO_Struct_TypeDef){GPIOA,3,In_Floating};
|
||||||
|
txd = (MyGPIO_Struct_TypeDef){GPIOA,2,AltOut_Ppull};
|
||||||
|
}
|
||||||
|
else if(UARTStructPtr->UART == USART3) {
|
||||||
|
rxd = (MyGPIO_Struct_TypeDef){GPIOB,11,In_PullUp};
|
||||||
|
txd = (MyGPIO_Struct_TypeDef){GPIOB,10,AltOut_Ppull};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
MyGPIO_Init(&rxd);
|
||||||
|
MyGPIO_Init(&txd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyUART_Send(MyUART_Struct_Typedef *UART, uint8_t data)
|
||||||
|
{
|
||||||
|
UART->UART->DR = data;
|
||||||
|
//du DR au Registre de Transmission, on attend que le shift register ai récupéré le DR
|
||||||
|
while (!(UART->UART->SR & USART_SR_TXE));
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t MyUART_Receive(MyUART_Struct_Typedef *UART)
|
||||||
|
{
|
||||||
|
while (!(UART->UART->SR & USART_SR_RXNE)); // Si RXNE est mis à 1, alors on vient de recevoir une donnée !
|
||||||
|
uint8_t data = UART->UART->DR; // Read the data.
|
||||||
|
UART->UART->SR &= ~USART_SR_RXNE; //flag to 0
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void USART1_IRQHandler(void)
|
void USART1_IRQHandler(void)
|
||||||
{
|
{
|
||||||
// Check if receive data register not empty
|
if((USART1->SR & USART_SR_RXNE) == USART_SR_RXNE) //verify the flag
|
||||||
if(USART1->SR & USART_SR_RXNE)
|
|
||||||
{
|
{
|
||||||
data1 = USART1->DR; // read received data
|
if (pFncUART != 0)
|
||||||
// do something with received data
|
(*pFncUART) (USART1->DR); /* appel indirect de la fonction */
|
||||||
|
USART1->SR &= ~USART_SR_RXNE; //flag to 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void USART2_IRQHandler(void)
|
void USART2_IRQHandler(void)
|
||||||
{
|
{
|
||||||
// Check if receive data register not empty
|
if((USART2->SR & USART_SR_RXNE) == USART_SR_RXNE) //verify the flag
|
||||||
if(USART2->SR & USART_SR_RXNE)
|
|
||||||
{
|
{
|
||||||
data2 = USART2->DR; // read received data
|
if (pFncUART != 0)
|
||||||
// do something with received data
|
(*pFncUART) (USART2->DR); /* appel indirect de la fonction */
|
||||||
|
USART2->SR &= ~USART_SR_RXNE; //flag to 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void USART3_IRQHandler(void)
|
void USART3_IRQHandler(void)
|
||||||
{
|
{
|
||||||
// Check if receive data register not empty
|
// Check if receive data register not empty
|
||||||
if(USART3->SR & USART_SR_RXNE)
|
if((USART3->SR & USART_SR_RXNE) == USART_SR_RXNE) //verify the flag
|
||||||
{
|
{
|
||||||
data3 = USART3->DR; // read received data
|
if (pFncUART != 0)
|
||||||
// do something with received data
|
(*pFncUART) (USART3->DR); /* appel indirect de la fonction */
|
||||||
|
USART2->SR &= ~USART_SR_RXNE; //flag to 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char MyUART_Read(MyUART_Struct_Typedef * UARTStructPtr)
|
|
||||||
{
|
|
||||||
if(UARTStructPtr->UART == USART1)
|
|
||||||
return data1;
|
|
||||||
else if(UARTStructPtr->UART == USART2)
|
|
||||||
return data2;
|
|
||||||
else if(UARTStructPtr->UART == USART3)
|
|
||||||
return data3;
|
|
||||||
else
|
|
||||||
return 0xFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* exemple utilisation fonction :
|
/* exemple utilisation fonction :
|
||||||
|
|
||||||
UART1.UART = USART1; // choix UART (USART1, USART2, USART3)
|
UART1.UART = USART1; // choix UART (USART1, USART2, USART3)
|
||||||
|
@ -88,4 +161,3 @@ char MyUART_Read(MyUART_Struct_Typedef * UARTStructPtr)
|
||||||
UART1.Wstop = stop1b; // nombre bit de stop (stop1b, stop2b)
|
UART1.Wstop = stop1b; // nombre bit de stop (stop1b, stop2b)
|
||||||
MyUART_Init(&UART1); // initialisation
|
MyUART_Init(&UART1); // initialisation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -2,26 +2,35 @@
|
||||||
#define UART_H
|
#define UART_H
|
||||||
#include "stm32f10x.h"
|
#include "stm32f10x.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
lengthBit8,
|
||||||
|
lengthBit9
|
||||||
|
} MyUART_Enum_Length;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
parityNone,
|
||||||
|
parityEven = 0b10,
|
||||||
|
parityOdd = 0b11
|
||||||
|
} MyUART_Enum_Parity;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
stopBit1,
|
||||||
|
stopBit0d5,
|
||||||
|
stopBit2,
|
||||||
|
stopBit1d5
|
||||||
|
} MyUART_Enum_StopBits;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
USART_TypeDef * UART;
|
USART_TypeDef * UART;
|
||||||
unsigned int BaudRate;
|
uint32_t BaudRate;
|
||||||
unsigned char Wlengh;
|
MyUART_Enum_Length length;
|
||||||
unsigned char Wparity;
|
MyUART_Enum_Parity parity;
|
||||||
unsigned char Wstop;
|
MyUART_Enum_StopBits stop;
|
||||||
|
|
||||||
}MyUART_Struct_Typedef;
|
}MyUART_Struct_Typedef;
|
||||||
|
|
||||||
#define parity_none 0x0
|
|
||||||
#define parity_even 0x1
|
|
||||||
#define parity_odd 0x2
|
|
||||||
#define Wlengh8 0x0
|
|
||||||
#define Wlengh9 0X1
|
|
||||||
#define stop1b 0x0
|
|
||||||
#define stop2b 0x2
|
|
||||||
|
|
||||||
void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr);
|
void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr);
|
||||||
void USART1_IRQHandler(void);
|
void MyUART_InitGPIO(MyUART_Struct_Typedef * UARTStructPtr);
|
||||||
void USART2_IRQHandler(void);
|
void MyUART_Send(MyUART_Struct_Typedef *UART, uint8_t data);
|
||||||
void USART3_IRQHandler(void);
|
uint8_t MyUART_Receive(MyUART_Struct_Typedef *UART);
|
||||||
char MyUART_Read(MyUART_Struct_Typedef * UARTStructPtr);
|
void MyUART_Init_Periph (void (* ptrFonction)(uint8_t));
|
||||||
#endif
|
#endif
|
|
@ -2,7 +2,7 @@
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
|
|
||||||
void MyMotor_Init()
|
void MyMotor_Init(void)
|
||||||
{
|
{
|
||||||
MyTimer_Struct_Typedef Timer;
|
MyTimer_Struct_Typedef Timer;
|
||||||
MyGPIO_Struct_TypeDef Pin_Direction;
|
MyGPIO_Struct_TypeDef Pin_Direction;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#define HORAIRE 0x1
|
#define HORAIRE 0x1
|
||||||
#define ANTIHOR 0x0
|
#define ANTIHOR 0x0
|
||||||
|
|
||||||
void MyMotor_Init();
|
void MyMotor_Init(void);
|
||||||
void MyMotor_ChangeSpeed(unsigned int DC);
|
void MyMotor_ChangeSpeed(unsigned int DC);
|
||||||
void MyMotor_ChangeDirection(uint8_t Sens);
|
void MyMotor_ChangeDirection(uint8_t Sens);
|
||||||
|
|
||||||
|
|
33
implementation/remote.c
Normal file
33
implementation/remote.c
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#include "remote.h"
|
||||||
|
#include "gpio.h"
|
||||||
|
|
||||||
|
MyUART_Struct_Typedef uartCool = {USART1,9600,lengthBit8,parityNone,stopBit1};
|
||||||
|
|
||||||
|
void remote(uint8_t data)
|
||||||
|
{
|
||||||
|
MyUART_Send(&uartCool,data);
|
||||||
|
int8_t signedData = (int8_t)data;
|
||||||
|
if(signedData > 0)
|
||||||
|
{
|
||||||
|
MyGPIO_Set(GPIOA,5);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
MyGPIO_Reset(GPIOA,5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void initRemote(void)
|
||||||
|
{
|
||||||
|
MyUART_InitGPIO(&uartCool);
|
||||||
|
MyUART_Init(&uartCool);
|
||||||
|
MyUART_Init_Periph(remote);
|
||||||
|
}
|
||||||
|
|
||||||
|
void testRemote(void)
|
||||||
|
{
|
||||||
|
MyUART_Send(&uartCool,'s');
|
||||||
|
MyUART_Send(&uartCool,'a');
|
||||||
|
MyUART_Send(&uartCool,'l');
|
||||||
|
MyUART_Send(&uartCool,'u');
|
||||||
|
MyUART_Send(&uartCool,'t');
|
||||||
|
}
|
11
implementation/remote.h
Normal file
11
implementation/remote.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef REMOTE_H
|
||||||
|
#define REMOTE_H
|
||||||
|
#include "uart.h"
|
||||||
|
|
||||||
|
//XBEE 9600 baud, zero parite, 1 bit de stop,
|
||||||
|
|
||||||
|
void remote(uint8_t data);
|
||||||
|
void initRemote(void);
|
||||||
|
void testRemote(void);
|
||||||
|
|
||||||
|
#endif
|
51
implementation/remote.md
Normal file
51
implementation/remote.md
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# Initialisation de l'UART avec un Raspberry Pi
|
||||||
|
### Yohan Boujon
|
||||||
|
---
|
||||||
|
Pour tester l'intégration de l'UART j'ai décidé de me focaliser uniquement sur l'UART 1 du STM32. Afin de simplifier la programmation côté microcontrôleur, et aussi d'apprendre plus sur mon Raspberry Pi ce choix était plus complaisant.
|
||||||
|
|
||||||
|
## Configuration du Raspberry Pi
|
||||||
|
|
||||||
|
La première chose est de vérifier si les pins pour la communication UART sont dans le bon mode. Pour se faire il suffit de lancer la commande :
|
||||||
|
```bash
|
||||||
|
sudo raspi-gpio get 14-15
|
||||||
|
```
|
||||||
|
Normalement le résultat devrait être le suivant :
|
||||||
|

|
||||||
|
Si func n'est pas TXD/RXD alors entrez ces commandes :
|
||||||
|
```bash
|
||||||
|
sudo raspi-gpio set 15 a5
|
||||||
|
sudo raspi-gpio set 14 a5
|
||||||
|
```
|
||||||
|
Pour rappel, le terme après 15/14 détermine l'alternative function, plus d'informations peuvent être trouvées ici [Détail sur les différentes ALT](https://blog.boochow.com/wp-content/uploads/rpi-gpio-table.png). Pour vérifier si vous voulez UART1 ou UART 0, avec la commande ```ls -l /dev``` il est possible de voir le lien symbolique réalisé entre votre serialX et la pin réelle de votre pi. Choisissez celle que vous voulez, mais si vous avez besoin du bluetooth, **ttyS0** est la liaison serie recommandée. *(Dans notre cas elle est reliée à l'UART1)*
|
||||||
|
|
||||||
|
Pour finalement activer du côté hardware l'UART, il faut entrer la commande suivante :
|
||||||
|
```bash
|
||||||
|
sudo raspi-config
|
||||||
|
```
|
||||||
|
Après cela une fenêtre bleue avec divers paramètres sont disponible. Ce qui nous intéresse c'est donc d'activer le port UART, soit :
|
||||||
|
**3 Interface Option** > **I6 Serial Port** > **No** > **Yes**
|
||||||
|
Il faut ensuite vérifier que le fichier de configuration accepte bien l'UART, soit :
|
||||||
|
```bash
|
||||||
|
sudo nano /boot/config.txt
|
||||||
|
```
|
||||||
|
et entrez les paramètres suivants en fin de ligne :
|
||||||
|
```
|
||||||
|
enable_uart=1
|
||||||
|
dtoverlay=disable-bt
|
||||||
|
dtoverlay=uart1,txd1_pin=14,rxd1_pin=15
|
||||||
|
```
|
||||||
|
Le premier active l'UART, le second désactive le bluetooth *(peut poser des problèmes sur l'UART 1 ou 0, dépendant des cas)* et enfin le dernier active le txd/rxd 0/1 pour une certaine pin.
|
||||||
|
Faites **CTRL+X** , **'y'** et rebootez votre Raspberry :
|
||||||
|
```bash
|
||||||
|
sudo reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensuite il ne reste plus qu'à tester ! à l'aide du programme [**minicom**](https://doc.ubuntu-fr.org/minicom) il est possible de tester simplement l'UART en rebouclant les GPIO comme ici :
|
||||||
|

|
||||||
|
|
||||||
|
Maintenant testons avec la commande
|
||||||
|
```bash
|
||||||
|
minicom -b 9600 -o -D /dev/ttyS0
|
||||||
|
```
|
||||||
|
|
||||||
|

|
|
@ -6,7 +6,7 @@ void plantage_i2C(void) {
|
||||||
|
|
||||||
void (*IT_I2C_Err) (void) = plantage_i2C;
|
void (*IT_I2C_Err) (void) = plantage_i2C;
|
||||||
|
|
||||||
void MyRTC_Init()
|
void MyRTC_Init(void)
|
||||||
{
|
{
|
||||||
MyI2C_Init(I2C1, 15, IT_I2C_Err);
|
MyI2C_Init(I2C1, 15, IT_I2C_Err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#ifndef GPIODRIVER_H
|
#ifndef MYRTC_H
|
||||||
#define GPIODRIVER_H
|
#define MYRTC_H
|
||||||
#include "stm32f10x.h"
|
#include "stm32f10x.h"
|
||||||
#include "MyI2C.h"
|
#include "MyI2C.h"
|
||||||
|
|
||||||
void MyRTC_Init();
|
void MyRTC_Init(void);
|
||||||
void MyRTC_GetTime(int* sec, int* min, int* hour, int* day, int* date, int* month, int* year);
|
void MyRTC_GetTime(int* sec, int* min, int* hour, int* day, int* date, int* month, int* year);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "servo.h"
|
#include "servo.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
|
|
||||||
void MyServo_Init()
|
void MyServo_Init(void)
|
||||||
{
|
{
|
||||||
MyTimer_Struct_Typedef Timer;
|
MyTimer_Struct_Typedef Timer;
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
0 correspond à 90°
|
0 correspond à 90°
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void MyServo_Init();
|
void MyServo_Init(void);
|
||||||
void MyServo_ChangeAngle(uint8_t Angle);
|
void MyServo_ChangeAngle(uint8_t Angle);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -132,7 +132,7 @@ Reset_Handler PROC
|
||||||
EXPORT Reset_Handler [WEAK]
|
EXPORT Reset_Handler [WEAK]
|
||||||
IMPORT __main
|
IMPORT __main
|
||||||
IMPORT SystemInit
|
IMPORT SystemInit
|
||||||
LDR R0, =SystemInit
|
a LDR R0, =SystemInit
|
||||||
BLX R0
|
BLX R0
|
||||||
LDR R0, =__main
|
LDR R0, =__main
|
||||||
BX R0
|
BX R0
|
||||||
|
|
|
@ -1,19 +1,25 @@
|
||||||
#include "stm32f10x.h"
|
#include "stm32f10x.h"
|
||||||
|
#include "gpio.h"
|
||||||
#include "servo.h"
|
#include "servo.h"
|
||||||
#include "motoreducteur.h"
|
#include "motoreducteur.h"
|
||||||
#include "rtc.h"
|
#include "rtc.h"
|
||||||
|
#include "remote.h"
|
||||||
|
|
||||||
int main (void)
|
int main (void)
|
||||||
{
|
{
|
||||||
MyServo_Init();
|
MyServo_Init();
|
||||||
MyServo_ChangeAngle(179);
|
MyServo_ChangeAngle(179);
|
||||||
|
MyGPIO_Struct_TypeDef led = {GPIOA,5,Out_PullUp}; //led
|
||||||
|
MyGPIO_Init(&led); //test des leds pour ignorer les contraintes liées aux différents ports
|
||||||
//MyMotor_Init();
|
//MyMotor_Init();
|
||||||
|
|
||||||
//MyMotor_ChangeSpeed(2000);
|
//MyMotor_ChangeSpeed(2000);
|
||||||
//MyMotor_ChangeDirection(HORAIRE);
|
//MyMotor_ChangeDirection(HORAIRE);
|
||||||
|
initRemote();
|
||||||
|
testRemote();
|
||||||
|
|
||||||
MyRTC_Init();
|
MyRTC_Init();
|
||||||
MyRTC_GetTime();
|
// MyRTC_GetTime();
|
||||||
|
|
||||||
while(1){};
|
while(1){};
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,298 +26,9 @@
|
||||||
<ToolsetNumber>0x4</ToolsetNumber>
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
<ToolsetName>ARM-ADS</ToolsetName>
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
<TargetOption>
|
<TargetOption>
|
||||||
<CLKADS>8000000</CLKADS>
|
<CLKADS>12000000</CLKADS>
|
||||||
<OPTTT>
|
<OPTTT>
|
||||||
<gFlags>1</gFlags>
|
<gFlags>0</gFlags>
|
||||||
<BeepAtEnd>1</BeepAtEnd>
|
|
||||||
<RunSim>0</RunSim>
|
|
||||||
<RunTarget>1</RunTarget>
|
|
||||||
<RunAbUc>0</RunAbUc>
|
|
||||||
</OPTTT>
|
|
||||||
<OPTHX>
|
|
||||||
<HexSelection>1</HexSelection>
|
|
||||||
<FlashByte>65535</FlashByte>
|
|
||||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
|
||||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
|
||||||
<HexOffset>0</HexOffset>
|
|
||||||
</OPTHX>
|
|
||||||
<OPTLEX>
|
|
||||||
<PageWidth>79</PageWidth>
|
|
||||||
<PageLength>66</PageLength>
|
|
||||||
<TabStop>8</TabStop>
|
|
||||||
<ListingPath>.\Listings\</ListingPath>
|
|
||||||
</OPTLEX>
|
|
||||||
<ListingPage>
|
|
||||||
<CreateCListing>1</CreateCListing>
|
|
||||||
<CreateAListing>1</CreateAListing>
|
|
||||||
<CreateLListing>1</CreateLListing>
|
|
||||||
<CreateIListing>0</CreateIListing>
|
|
||||||
<AsmCond>1</AsmCond>
|
|
||||||
<AsmSymb>1</AsmSymb>
|
|
||||||
<AsmXref>0</AsmXref>
|
|
||||||
<CCond>1</CCond>
|
|
||||||
<CCode>0</CCode>
|
|
||||||
<CListInc>0</CListInc>
|
|
||||||
<CSymb>0</CSymb>
|
|
||||||
<LinkerCodeListing>0</LinkerCodeListing>
|
|
||||||
</ListingPage>
|
|
||||||
<OPTXL>
|
|
||||||
<LMap>1</LMap>
|
|
||||||
<LComments>1</LComments>
|
|
||||||
<LGenerateSymbols>1</LGenerateSymbols>
|
|
||||||
<LLibSym>1</LLibSym>
|
|
||||||
<LLines>1</LLines>
|
|
||||||
<LLocSym>1</LLocSym>
|
|
||||||
<LPubSym>1</LPubSym>
|
|
||||||
<LXref>0</LXref>
|
|
||||||
<LExpSel>0</LExpSel>
|
|
||||||
</OPTXL>
|
|
||||||
<OPTFL>
|
|
||||||
<tvExp>1</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<IsCurrentTarget>0</IsCurrentTarget>
|
|
||||||
</OPTFL>
|
|
||||||
<CpuCode>18</CpuCode>
|
|
||||||
<DebugOpt>
|
|
||||||
<uSim>1</uSim>
|
|
||||||
<uTrg>0</uTrg>
|
|
||||||
<sLdApp>1</sLdApp>
|
|
||||||
<sGomain>1</sGomain>
|
|
||||||
<sRbreak>1</sRbreak>
|
|
||||||
<sRwatch>1</sRwatch>
|
|
||||||
<sRmem>1</sRmem>
|
|
||||||
<sRfunc>1</sRfunc>
|
|
||||||
<sRbox>1</sRbox>
|
|
||||||
<tLdApp>1</tLdApp>
|
|
||||||
<tGomain>1</tGomain>
|
|
||||||
<tRbreak>1</tRbreak>
|
|
||||||
<tRwatch>1</tRwatch>
|
|
||||||
<tRmem>1</tRmem>
|
|
||||||
<tRfunc>0</tRfunc>
|
|
||||||
<tRbox>1</tRbox>
|
|
||||||
<tRtrace>1</tRtrace>
|
|
||||||
<sRSysVw>1</sRSysVw>
|
|
||||||
<tRSysVw>1</tRSysVw>
|
|
||||||
<sRunDeb>0</sRunDeb>
|
|
||||||
<sLrtime>0</sLrtime>
|
|
||||||
<bEvRecOn>1</bEvRecOn>
|
|
||||||
<bSchkAxf>0</bSchkAxf>
|
|
||||||
<bTchkAxf>0</bTchkAxf>
|
|
||||||
<nTsel>0</nTsel>
|
|
||||||
<sDll></sDll>
|
|
||||||
<sDllPa></sDllPa>
|
|
||||||
<sDlgDll></sDlgDll>
|
|
||||||
<sDlgPa></sDlgPa>
|
|
||||||
<sIfile></sIfile>
|
|
||||||
<tDll></tDll>
|
|
||||||
<tDllPa></tDllPa>
|
|
||||||
<tDlgDll></tDlgDll>
|
|
||||||
<tDlgPa></tDlgPa>
|
|
||||||
<tIfile></tIfile>
|
|
||||||
<pMon>BIN\UL2CM3.DLL</pMon>
|
|
||||||
</DebugOpt>
|
|
||||||
<TargetDriverDllRegistry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>ARMRTXEVENTFLAGS</Key>
|
|
||||||
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>DLGDARM</Key>
|
|
||||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1468,53,1889,480,1)(121=1469,437,1890,864,1)(122=875,109,1296,536,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=1285,87,1879,838,1)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>ARMDBGFLAGS</Key>
|
|
||||||
<Name>-T0</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>UL2CM3</Key>
|
|
||||||
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
</TargetDriverDllRegistry>
|
|
||||||
<Breakpoint>
|
|
||||||
<Bp>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>13</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>0</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>0</BreakIfRCount>
|
|
||||||
<Filename>.\Source\Principale.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression></Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>1</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>12</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>0</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>0</BreakIfRCount>
|
|
||||||
<Filename>.\Source\Principale.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression></Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>2</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>15</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134218740</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>.\Source\Principale.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\cool_Simule\Source/Principale.c\15</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>3</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>19</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>0</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>0</BreakIfRCount>
|
|
||||||
<Filename>.\Source\Principale.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression></Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>4</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>7</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>0</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>0</BreakIfRCount>
|
|
||||||
<Filename>.\Source\Principale.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression></Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>5</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>8</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>0</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>0</BreakIfRCount>
|
|
||||||
<Filename>.\Source\Principale.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression></Expression>
|
|
||||||
</Bp>
|
|
||||||
</Breakpoint>
|
|
||||||
<WatchWindow1>
|
|
||||||
<Ww>
|
|
||||||
<count>0</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>voyons</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>1</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>returnValue</ItemText>
|
|
||||||
</Ww>
|
|
||||||
</WatchWindow1>
|
|
||||||
<Tracepoint>
|
|
||||||
<THDelay>0</THDelay>
|
|
||||||
</Tracepoint>
|
|
||||||
<DebugFlag>
|
|
||||||
<trace>0</trace>
|
|
||||||
<periodic>1</periodic>
|
|
||||||
<aLwin>1</aLwin>
|
|
||||||
<aCover>0</aCover>
|
|
||||||
<aSer1>0</aSer1>
|
|
||||||
<aSer2>0</aSer2>
|
|
||||||
<aPa>0</aPa>
|
|
||||||
<viewmode>1</viewmode>
|
|
||||||
<vrSel>0</vrSel>
|
|
||||||
<aSym>0</aSym>
|
|
||||||
<aTbox>0</aTbox>
|
|
||||||
<AscS1>0</AscS1>
|
|
||||||
<AscS2>0</AscS2>
|
|
||||||
<AscS3>0</AscS3>
|
|
||||||
<aSer3>0</aSer3>
|
|
||||||
<eProf>0</eProf>
|
|
||||||
<aLa>0</aLa>
|
|
||||||
<aPa1>0</aPa1>
|
|
||||||
<AscS4>0</AscS4>
|
|
||||||
<aSer4>0</aSer4>
|
|
||||||
<StkLoc>0</StkLoc>
|
|
||||||
<TrcWin>0</TrcWin>
|
|
||||||
<newCpu>0</newCpu>
|
|
||||||
<uProt>0</uProt>
|
|
||||||
</DebugFlag>
|
|
||||||
<LintExecutable></LintExecutable>
|
|
||||||
<LintConfigFile></LintConfigFile>
|
|
||||||
<bLintAuto>0</bLintAuto>
|
|
||||||
<bAutoGenD>0</bAutoGenD>
|
|
||||||
<LntExFlags>0</LntExFlags>
|
|
||||||
<pMisraName></pMisraName>
|
|
||||||
<pszMrule></pszMrule>
|
|
||||||
<pSingCmds></pSingCmds>
|
|
||||||
<pMultCmds></pMultCmds>
|
|
||||||
<pMisraNamep></pMisraNamep>
|
|
||||||
<pszMrulep></pszMrulep>
|
|
||||||
<pSingCmdsp></pSingCmdsp>
|
|
||||||
<pMultCmdsp></pMultCmdsp>
|
|
||||||
<SystemViewers>
|
|
||||||
<Entry>
|
|
||||||
<Name>System Viewer\GPIOA</Name>
|
|
||||||
<WinId>35905</WinId>
|
|
||||||
</Entry>
|
|
||||||
<Entry>
|
|
||||||
<Name>System Viewer\GPIOB</Name>
|
|
||||||
<WinId>35904</WinId>
|
|
||||||
</Entry>
|
|
||||||
</SystemViewers>
|
|
||||||
<DebugDescription>
|
|
||||||
<Enable>1</Enable>
|
|
||||||
<EnableFlashSeq>1</EnableFlashSeq>
|
|
||||||
<EnableLog>0</EnableLog>
|
|
||||||
<Protocol>2</Protocol>
|
|
||||||
<DbgClock>10000000</DbgClock>
|
|
||||||
</DebugDescription>
|
|
||||||
</TargetOption>
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target>
|
|
||||||
<TargetName>Réel</TargetName>
|
|
||||||
<ToolsetNumber>0x4</ToolsetNumber>
|
|
||||||
<ToolsetName>ARM-ADS</ToolsetName>
|
|
||||||
<TargetOption>
|
|
||||||
<CLKADS>8000000</CLKADS>
|
|
||||||
<OPTTT>
|
|
||||||
<gFlags>1</gFlags>
|
|
||||||
<BeepAtEnd>1</BeepAtEnd>
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
<RunSim>0</RunSim>
|
<RunSim>0</RunSim>
|
||||||
<RunTarget>1</RunTarget>
|
<RunTarget>1</RunTarget>
|
||||||
|
@ -392,7 +103,7 @@
|
||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>6</nTsel>
|
<nTsel>0</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
|
@ -403,135 +114,28 @@
|
||||||
<tDlgDll></tDlgDll>
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa></tDlgPa>
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile></tIfile>
|
<tIfile></tIfile>
|
||||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
<pMon>BIN\UL2CM3.DLL</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>DLGTARM</Key>
|
|
||||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>DLGUARM</Key>
|
|
||||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>ST-LINKIII-KEIL_SWO</Key>
|
|
||||||
<Name>-U066AFF504955857567212155 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>ARMRTXEVENTFLAGS</Key>
|
|
||||||
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>DLGDARM</Key>
|
|
||||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Key>ARMDBGFLAGS</Key>
|
|
||||||
<Name>-T0</Name>
|
|
||||||
</SetRegEntry>
|
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>UL2CM3</Key>
|
<Key>UL2CM3</Key>
|
||||||
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
|
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
</TargetDriverDllRegistry>
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint>
|
<Breakpoint/>
|
||||||
<Bp>
|
|
||||||
<Number>0</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>24</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134219864</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>C:\Users\alixc\Desktop\Scolarité\INSA\Cours\Microcontroleur\voilier-team-1\implementation\rtc.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\cool_reel\../implementation/rtc.c\24</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>1</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>25</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134219874</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>C:\Users\alixc\Desktop\Scolarité\INSA\Cours\Microcontroleur\voilier-team-1\implementation\rtc.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\cool_reel\../implementation/rtc.c\25</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>2</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>16</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>134221212</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
|
||||||
<Filename>C:\Users\alixc\Desktop\Scolarité\INSA\Cours\Microcontroleur\voilier-team-1\keilproject\Source\Principale.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression>\\cool_reel\Source/Principale.c\16</Expression>
|
|
||||||
</Bp>
|
|
||||||
<Bp>
|
|
||||||
<Number>3</Number>
|
|
||||||
<Type>0</Type>
|
|
||||||
<LineNumber>23</LineNumber>
|
|
||||||
<EnabledFlag>1</EnabledFlag>
|
|
||||||
<Address>0</Address>
|
|
||||||
<ByteObject>0</ByteObject>
|
|
||||||
<HtxType>0</HtxType>
|
|
||||||
<ManyObjects>0</ManyObjects>
|
|
||||||
<SizeOfObject>0</SizeOfObject>
|
|
||||||
<BreakByAccess>0</BreakByAccess>
|
|
||||||
<BreakIfRCount>0</BreakIfRCount>
|
|
||||||
<Filename>..\implementation\rtc.c</Filename>
|
|
||||||
<ExecCommand></ExecCommand>
|
|
||||||
<Expression></Expression>
|
|
||||||
</Bp>
|
|
||||||
</Breakpoint>
|
|
||||||
<WatchWindow1>
|
|
||||||
<Ww>
|
|
||||||
<count>0</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>quelquechose</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>1</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>returnValue</ItemText>
|
|
||||||
</Ww>
|
|
||||||
</WatchWindow1>
|
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
</Tracepoint>
|
</Tracepoint>
|
||||||
<DebugFlag>
|
<DebugFlag>
|
||||||
<trace>0</trace>
|
<trace>0</trace>
|
||||||
<periodic>1</periodic>
|
<periodic>0</periodic>
|
||||||
<aLwin>1</aLwin>
|
<aLwin>0</aLwin>
|
||||||
<aCover>0</aCover>
|
<aCover>0</aCover>
|
||||||
<aSer1>0</aSer1>
|
<aSer1>0</aSer1>
|
||||||
<aSer2>0</aSer2>
|
<aSer2>0</aSer2>
|
||||||
<aPa>0</aPa>
|
<aPa>0</aPa>
|
||||||
<viewmode>1</viewmode>
|
<viewmode>0</viewmode>
|
||||||
<vrSel>0</vrSel>
|
<vrSel>0</vrSel>
|
||||||
<aSym>0</aSym>
|
<aSym>0</aSym>
|
||||||
<aTbox>0</aTbox>
|
<aTbox>0</aTbox>
|
||||||
|
@ -564,7 +168,7 @@
|
||||||
<pMultCmdsp></pMultCmdsp>
|
<pMultCmdsp></pMultCmdsp>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
<Enable>1</Enable>
|
<Enable>1</Enable>
|
||||||
<EnableFlashSeq>0</EnableFlashSeq>
|
<EnableFlashSeq>1</EnableFlashSeq>
|
||||||
<EnableLog>0</EnableLog>
|
<EnableLog>0</EnableLog>
|
||||||
<Protocol>2</Protocol>
|
<Protocol>2</Protocol>
|
||||||
<DbgClock>10000000</DbgClock>
|
<DbgClock>10000000</DbgClock>
|
||||||
|
@ -572,6 +176,147 @@
|
||||||
</TargetOption>
|
</TargetOption>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
<Target>
|
||||||
|
<TargetName>Réel</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<CLKADS>12000000</CLKADS>
|
||||||
|
<OPTTT>
|
||||||
|
<gFlags>0</gFlags>
|
||||||
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
|
<RunSim>1</RunSim>
|
||||||
|
<RunTarget>0</RunTarget>
|
||||||
|
<RunAbUc>0</RunAbUc>
|
||||||
|
</OPTTT>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<FlashByte>65535</FlashByte>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
</OPTHX>
|
||||||
|
<OPTLEX>
|
||||||
|
<PageWidth>79</PageWidth>
|
||||||
|
<PageLength>66</PageLength>
|
||||||
|
<TabStop>8</TabStop>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
</OPTLEX>
|
||||||
|
<ListingPage>
|
||||||
|
<CreateCListing>1</CreateCListing>
|
||||||
|
<CreateAListing>1</CreateAListing>
|
||||||
|
<CreateLListing>1</CreateLListing>
|
||||||
|
<CreateIListing>0</CreateIListing>
|
||||||
|
<AsmCond>1</AsmCond>
|
||||||
|
<AsmSymb>1</AsmSymb>
|
||||||
|
<AsmXref>0</AsmXref>
|
||||||
|
<CCond>1</CCond>
|
||||||
|
<CCode>0</CCode>
|
||||||
|
<CListInc>0</CListInc>
|
||||||
|
<CSymb>0</CSymb>
|
||||||
|
<LinkerCodeListing>0</LinkerCodeListing>
|
||||||
|
</ListingPage>
|
||||||
|
<OPTXL>
|
||||||
|
<LMap>1</LMap>
|
||||||
|
<LComments>1</LComments>
|
||||||
|
<LGenerateSymbols>1</LGenerateSymbols>
|
||||||
|
<LLibSym>1</LLibSym>
|
||||||
|
<LLines>1</LLines>
|
||||||
|
<LLocSym>1</LLocSym>
|
||||||
|
<LPubSym>1</LPubSym>
|
||||||
|
<LXref>0</LXref>
|
||||||
|
<LExpSel>0</LExpSel>
|
||||||
|
</OPTXL>
|
||||||
|
<OPTFL>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<IsCurrentTarget>0</IsCurrentTarget>
|
||||||
|
</OPTFL>
|
||||||
|
<CpuCode>18</CpuCode>
|
||||||
|
<DebugOpt>
|
||||||
|
<uSim>1</uSim>
|
||||||
|
<uTrg>0</uTrg>
|
||||||
|
<sLdApp>1</sLdApp>
|
||||||
|
<sGomain>1</sGomain>
|
||||||
|
<sRbreak>1</sRbreak>
|
||||||
|
<sRwatch>1</sRwatch>
|
||||||
|
<sRmem>1</sRmem>
|
||||||
|
<sRfunc>1</sRfunc>
|
||||||
|
<sRbox>1</sRbox>
|
||||||
|
<tLdApp>1</tLdApp>
|
||||||
|
<tGomain>0</tGomain>
|
||||||
|
<tRbreak>1</tRbreak>
|
||||||
|
<tRwatch>1</tRwatch>
|
||||||
|
<tRmem>1</tRmem>
|
||||||
|
<tRfunc>0</tRfunc>
|
||||||
|
<tRbox>1</tRbox>
|
||||||
|
<tRtrace>1</tRtrace>
|
||||||
|
<sRSysVw>1</sRSysVw>
|
||||||
|
<tRSysVw>1</tRSysVw>
|
||||||
|
<sRunDeb>0</sRunDeb>
|
||||||
|
<sLrtime>0</sLrtime>
|
||||||
|
<bEvRecOn>1</bEvRecOn>
|
||||||
|
<bSchkAxf>0</bSchkAxf>
|
||||||
|
<bTchkAxf>0</bTchkAxf>
|
||||||
|
<nTsel>-1</nTsel>
|
||||||
|
<sDll></sDll>
|
||||||
|
<sDllPa></sDllPa>
|
||||||
|
<sDlgDll></sDlgDll>
|
||||||
|
<sDlgPa></sDlgPa>
|
||||||
|
<sIfile></sIfile>
|
||||||
|
<tDll></tDll>
|
||||||
|
<tDllPa></tDllPa>
|
||||||
|
<tDlgDll></tDlgDll>
|
||||||
|
<tDlgPa></tDlgPa>
|
||||||
|
<tIfile></tIfile>
|
||||||
|
<pMon></pMon>
|
||||||
|
</DebugOpt>
|
||||||
|
<Breakpoint/>
|
||||||
|
<Tracepoint>
|
||||||
|
<THDelay>0</THDelay>
|
||||||
|
</Tracepoint>
|
||||||
|
<DebugFlag>
|
||||||
|
<trace>0</trace>
|
||||||
|
<periodic>0</periodic>
|
||||||
|
<aLwin>0</aLwin>
|
||||||
|
<aCover>0</aCover>
|
||||||
|
<aSer1>0</aSer1>
|
||||||
|
<aSer2>0</aSer2>
|
||||||
|
<aPa>0</aPa>
|
||||||
|
<viewmode>0</viewmode>
|
||||||
|
<vrSel>0</vrSel>
|
||||||
|
<aSym>0</aSym>
|
||||||
|
<aTbox>0</aTbox>
|
||||||
|
<AscS1>0</AscS1>
|
||||||
|
<AscS2>0</AscS2>
|
||||||
|
<AscS3>0</AscS3>
|
||||||
|
<aSer3>0</aSer3>
|
||||||
|
<eProf>0</eProf>
|
||||||
|
<aLa>0</aLa>
|
||||||
|
<aPa1>0</aPa1>
|
||||||
|
<AscS4>0</AscS4>
|
||||||
|
<aSer4>0</aSer4>
|
||||||
|
<StkLoc>0</StkLoc>
|
||||||
|
<TrcWin>0</TrcWin>
|
||||||
|
<newCpu>0</newCpu>
|
||||||
|
<uProt>0</uProt>
|
||||||
|
</DebugFlag>
|
||||||
|
<LintExecutable></LintExecutable>
|
||||||
|
<LintConfigFile></LintConfigFile>
|
||||||
|
<bLintAuto>0</bLintAuto>
|
||||||
|
<bAutoGenD>0</bAutoGenD>
|
||||||
|
<LntExFlags>0</LntExFlags>
|
||||||
|
<pMisraName></pMisraName>
|
||||||
|
<pszMrule></pszMrule>
|
||||||
|
<pSingCmds></pSingCmds>
|
||||||
|
<pMultCmds></pMultCmds>
|
||||||
|
<pMisraNamep></pMisraNamep>
|
||||||
|
<pszMrulep></pszMrulep>
|
||||||
|
<pSingCmdsp></pSingCmdsp>
|
||||||
|
<pMultCmdsp></pMultCmdsp>
|
||||||
|
</TargetOption>
|
||||||
|
</Target>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>MesSources</GroupName>
|
<GroupName>MesSources</GroupName>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>1</tvExp>
|
||||||
|
@ -614,7 +359,7 @@
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>3</FileNumber>
|
<FileNumber>3</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\driver\gpio.c</PathWithFileName>
|
<PathWithFileName>..\driver\gpio.c</PathWithFileName>
|
||||||
|
@ -694,7 +439,7 @@
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>9</FileNumber>
|
<FileNumber>9</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\implementation\rtc.c</PathWithFileName>
|
<PathWithFileName>..\implementation\rtc.c</PathWithFileName>
|
||||||
|
@ -702,6 +447,18 @@
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>10</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\implementation\remote.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>remote.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
|
|
|
@ -438,6 +438,11 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\implementation\rtc.c</FilePath>
|
<FilePath>..\implementation\rtc.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>remote.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\implementation\remote.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -880,6 +885,11 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\implementation\rtc.c</FilePath>
|
<FilePath>..\implementation\rtc.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>remote.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\implementation\remote.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
|
Loading…
Reference in a new issue