Skip to content

Commit 79bd9d3

Browse files
authored
Merge pull request #16 from Embedded-Systems-Spring-2020/yingst
Task 1 stuff
2 parents c8a321e + 44b3088 commit 79bd9d3

File tree

2 files changed

+48
-7
lines changed

2 files changed

+48
-7
lines changed

BUILD_DIR/t4_sensor1.c

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,54 @@
33
#include "esos_pic24_rs232.h"
44
#include <p33EP512GP806.h>
55
#include <pic24_all.h>
6+
#include <esos_f14ui.h>
7+
8+
#include <esos_sensor.h>
69

710
#include <stdio.h>
811
#include <stdlib.h>
9-
#include "revF14.h"
1012

11-
ESOS_USER_TASK()
13+
#define LOOP_DELAY 1000
14+
15+
char buffer[30];
16+
BOOL SW1_latch = FALSE;
17+
BOOL SW2_latch = FALSE;
18+
19+
ESOS_USER_TASK(loop) {
20+
static uint16_t u16_data;
21+
22+
ESOS_TASK_BEGIN();
23+
24+
for (;;) {
25+
26+
ESOS_TASK_WAIT_UNTIL(esos_uiF14_isSW1Pressed());
27+
28+
//Grab the potentiometer
29+
ESOS_TASK_WAIT_ON_AVAILABLE_SENSOR(ESOS_SENSOR_CH02, ESOS_SENSOR_VREF_3V3);
30+
31+
//Now we have exclusive use of the pot, grab data
32+
ESOS_TASK_WAIT_SENSOR_QUICK_READ(u16_data);
33+
34+
//Grab the output
35+
ESOS_TASK_WAIT_ON_AVAILABLE_OUT_COMM();
36+
sprintf(buffer, "%d\n", u16_data);
37+
ESOS_TASK_WAIT_ON_SEND_STRING(buffer);
38+
ESOS_TASK_SIGNAL_AVAILABLE_OUT_COMM();
39+
40+
//Release the potentiometer
41+
ESOS_SENSOR_CLOSE();
42+
43+
ESOS_TASK_WAIT_TICKS(LOOP_DELAY);
44+
}
45+
46+
ESOS_TASK_END();
47+
}
1248

1349
void user_init(void){
14-
50+
config_esos_uiF14();
51+
52+
// Config heartbeat
53+
esos_uiF14_flashLED3(500);
54+
55+
esos_RegisterTask(loop);
1556
}

esos/src/pic24/esos_pic24_sensor.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Configure and enable the sensor module for pic24 hardware.
5656
void esos_sensor_config_hw (esos_sensor_ch_t e_senCh, esos_sensor_vref_t e_senVRef){
5757
if (esos_IsUserFlagClear(__ESOS_SYS_ADC_IS_BUSY)){
5858
esos_SetUserFlag(__ESOS_SYS_ADC_IS_BUSY);
59-
AD1CON1 = ADC_MODULE_OFF; //disables ADC while progranning
59+
AD1CON1bits.ADON = 0; //disables ADC while progranning
6060
AD1CON1 = ADC_CLK_AUTO | ADC_AUTO_SAMPLING_OFF;
6161
AD1CON1bits.AD12B = 0; // sets ADC for 10 bit sampling
6262
if (e_senCh == ESOS_SENSOR_CH02){
@@ -75,7 +75,7 @@ void esos_sensor_config_hw (esos_sensor_ch_t e_senCh, esos_sensor_vref_t e_senVR
7575
AD1CHS0 = ADC_CH0_NEG_SAMPLEA_VREFN | e_senCh;
7676
// Use internal clock, set sample time to 31 (bitmask logic)
7777
AD1CON3 = ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_31;
78-
AD1CON1 = ADC_MODULE_ON;
78+
AD1CON1bits.ADON = 1;
7979
}
8080
}
8181

@@ -112,6 +112,6 @@ Release any pending conversions for the sensor
112112
*/
113113
void esos_sensor_release_hw (void){
114114
esos_ClearUserFlag(__ESOS_SYS_ADC_IS_BUSY);
115-
// Mask to set ACD1COn1bits.ADON to 0 (turns off)
116-
AD1CON1 = ADC_MODULE_OFF;
115+
116+
AD1CON1bits.ADON = 0; // turn off sensor
117117
}

0 commit comments

Comments
 (0)