-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuser_defined.h
64 lines (53 loc) · 1.8 KB
/
user_defined.h
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
#ifndef _USER_DEFINED_H_
#define _USER_DEFINED_H_
#define LOW 0
#define HIGH -1
// --- Range padrão de valores de entradas do ppm ---
#define QUARTER_PPM_RANGE 2000
//ton mínimo do ppm: (1ms * freq. do clock)
#define MIN_PPM_VAL 8000
//ton máximo do ppm: (2ms * freq. do clock)
#define MAX_PPM_VAL 16000
// Valor médio do cana
#define MEAN_PPM_VAL 12000
//Fazer canal ppm com valor simétrico: (-12000)
#define HALF_PPM_RANGE 4000
// ===============================================================
// --- Declaração de funções definidas pelo assembler
/*
* div() em mult() são usadas em conjunto para realizar operações
* concatenadas, quando a = dividendo/divisor < 1.
*/
/*
* Multiplica os valores 'a' e 'b' e retona a word mais
* significativa, isto é, divide por 2^16.
*/
int mult(int a, int b);
/*
* Realiza divisão inteira e retona a parte decimal na word
* menos significativa, isto é, multiplica por 2^16.
*/
int div(int dividendo, int divisor);
/*
* Retorna o valor absoluto da entrada. Foi tentado usar o abs()
* da biblioteca math.h, mas não deu muito certo. Não se sabe o
* motivo.
*/
int ab(int x);
// ===============================================================
// --- Declaração de funções definidas no source file ---
/*
* flash_write_word. Escreve uma word (16 bits) no endereço apontado
* por Data_ptr.
*/
void flash_ww(int *Data_ptr, int word);
/*
* Retorna HIGH se x > y, senão retorna LOW. x e y são vistos como
* valores sem sinal. Criar este procedimento foi necessário, pois,
* para o microcontrolador, não importa se o valor é unsigned ou não…
* se tiver o bit mais significativo (MSB) em nível alto, então o
* valor é considerado negativo. Daí esta função é uma forma de
* contornar este problema.
*/
int comparar(int x, int y);
#endif