-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathio.h
72 lines (50 loc) · 1.33 KB
/
io.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
65
66
67
68
69
70
71
72
#ifndef _IOH_
#define _IOH_
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdbool.h>
#include <stdlib.h>
#define ADCREF_V 3.3
#define ADCMAXREAD 255 /* 8 bit ADC */
#define CONVRATE ((22+4.7)/4.7)
#define FULLCONV (ADCREF_V/ADCMAXREAD) * CONVRATE
/* ----------- ioPrefs ---------- */
typedef struct{
volatile uint16_t scrollpos;
volatile uint16_t scale;
volatile uint16_t timebase;
volatile uint16_t offset;
volatile uint16_t trigger;
volatile uint16_t mcpos[4];
} ioPrefs;
void ioPrefsReset(ioPrefs * const me);
volatile uint8_t ioTrigState;
volatile uint8_t ioCursor;
volatile bool ioPaused;
volatile bool ioShowMeasure;
uint8_t cnt;
/* --------- CONTROL INPUT ----------- */
volatile uint16_t *rp;
volatile uint16_t rspec;
volatile uint16_t rstep;
volatile uint16_t rmax;
volatile uint16_t rmin;
volatile uint8_t pbstate;
volatile uint8_t lastpb;
volatile uint8_t lastportc;
void init_control(void);
void read_rotb(void);
void read_rots(void);
void read_pushb(void);
/* ------------ ADC ----------------- */
/* Max conversion rate = F_ADC/13.5 = 1.5MHz/13.5
* = 111kHz (or 1 reading per 9us */
#define BUFSIZE 1000
volatile uint8_t adcbuf[BUFSIZE];
volatile uint16_t adcn;
void init_adc(void);
void delay_reading_us(int t);
void start_adc(uint16_t tb);
double ioGetText(void);
#endif