From b713e978cf587f9b51879644aac9e1e8f0c31d5e Mon Sep 17 00:00:00 2001 From: TiagoRG Date: Fri, 5 Apr 2024 10:44:31 +0100 Subject: [PATCH] [AC2] Aula07 Signed-off-by: TiagoRG --- 2ano/2semestre/ac2/aula06/ex06.c | 2 +- 2ano/2semestre/ac2/aula07/AC2-P-Aula07.pdf | Bin 0 -> 53260 bytes 2ano/2semestre/ac2/aula07/part1-1.c | 28 +++++++ 2ano/2semestre/ac2/aula07/part1-2.c | 86 +++++++++++++++++++++ 2ano/2semestre/ac2/aula07/part2-1.c | 32 ++++++++ 2ano/2semestre/ac2/aula07/part2-2.c | 37 +++++++++ 6 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 2ano/2semestre/ac2/aula07/AC2-P-Aula07.pdf create mode 100644 2ano/2semestre/ac2/aula07/part1-1.c create mode 100644 2ano/2semestre/ac2/aula07/part1-2.c create mode 100644 2ano/2semestre/ac2/aula07/part2-1.c create mode 100644 2ano/2semestre/ac2/aula07/part2-2.c diff --git a/2ano/2semestre/ac2/aula06/ex06.c b/2ano/2semestre/ac2/aula06/ex06.c index 6ec716d..3d4675d 100644 --- a/2ano/2semestre/ac2/aula06/ex06.c +++ b/2ano/2semestre/ac2/aula06/ex06.c @@ -55,7 +55,7 @@ int main() { int v = 0; while (1) { - if (i == 0){ + if (i == 0) { AD1CON1bits.ASAM = 1; // Start conversion while (IFS1bits.AD1IF == 0); // Wait while conversion not done int total = 0; diff --git a/2ano/2semestre/ac2/aula07/AC2-P-Aula07.pdf b/2ano/2semestre/ac2/aula07/AC2-P-Aula07.pdf new file mode 100644 index 0000000000000000000000000000000000000000..11a59edfebc20d8d3601d3d7cd826e5638bb97c7 GIT binary patch literal 53260 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 literal 0 HcmV?d00001 diff --git a/2ano/2semestre/ac2/aula07/part1-1.c b/2ano/2semestre/ac2/aula07/part1-1.c new file mode 100644 index 0000000..0528f96 --- /dev/null +++ b/2ano/2semestre/ac2/aula07/part1-1.c @@ -0,0 +1,28 @@ +#include + +int main() { + TRISBbits.TRISB4 = 1; + AD1PCFGbits.PCFG4 = 0; + AD1CON1bits.SSRC = 7; + AD1CON1bits.CLRASAM = 1; + AD1CON3bits.SAMC = 1; + AD1CON2bits.SMPI = 0; + AD1CHSbits.CH0SA = 4; + AD1CON1bits.ON = 1; + + IPC6bits.AD1IP = 2; // configure priority of A/D interrupts + IEC1bits.AD1IE = 1; // enable A/D interrupts + IFS1bits.AD1IF = 0; // clear A/D interrupt flag + + EnableInterrupts(); + AD1CON1bits.ASAM = 1; + + while (1); +} + +void _int_(27) isr_adc(void) { + printInt(ADC1BUF0, 16 | 3 << 16); + putChar('\r'); + IFS1bits.AD1IF = 0; + AD1CON1bits.ASAM = 1; +} diff --git a/2ano/2semestre/ac2/aula07/part1-2.c b/2ano/2semestre/ac2/aula07/part1-2.c new file mode 100644 index 0000000..3455107 --- /dev/null +++ b/2ano/2semestre/ac2/aula07/part1-2.c @@ -0,0 +1,86 @@ +#include + +#define SAMPLES 8 + +volatile unsigned char voltage = 0; + +const unsigned int dis7Scodes[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, + 0xFD, 0x07, 0x7F, 0x6F, 0x77, 0xFC, + 0x39, 0x5E, 0xF9, 0xF1}; + +typedef enum { HIGH, LOW } flag; + +unsigned char toBdc(unsigned char value) { + return ((value / 10) << 4) + (value % 10); +} + +void send2displays(unsigned char value) { + static flag f = LOW; + value = toBdc(value); + unsigned char high = dis7Scodes[value >> 4]; + unsigned char low = dis7Scodes[value & 0x0F]; + + if (f == HIGH) { + LATD = (LATD & 0xFF9F) | 0x0040; + LATB = (LATB & 0x80FF) | high << 8; + f = LOW; + } else { + LATD = (LATD & 0xFF9F) | 0x0020; + LATB = (LATB & 0x80FF) | low << 8; + f = HIGH; + } +} + +void delay(unsigned int ms) { + resetCoreTimer(); + while (readCoreTimer() < ms * 20000); +} + +int main() { + TRISBbits.TRISB4 = 1; // RB4 digital output disconnected + AD1PCFGbits.PCFG4 = 0; // RB4 configured as analog input (AN4) + AD1CON1bits.SSRC = 7; // Conversion trigger selection bits: in this + // mode an internal counter ends sampling and + // starts conversion + AD1CON1bits.CLRASAM = 1; // Stop conversions when the 1st A/D converter + // interrupt is generated. At the same time, hardware + // clears the ASAM bit + AD1CON3bits.SAMC = 16; // Sample time is 16 TAD (TAD = 100 ns) + AD1CON2bits.SMPI = SAMPLES - 1; // Interrupt is generated after 16 samples + AD1CHSbits.CH0SA = 4; // Selects AN4 as input for the A/D converter + AD1CON1bits.ON = 1; // Enable A/D converter + + IPC6bits.AD1IP = 2; // configure priority of A/D interrupts + IEC1bits.AD1IE = 1; // enable A/D interrupts + IFS1bits.AD1IF = 0; // clear A/D interrupt flag + + TRISB &= 0x80FF; // Configure RB8-RB14 as outputs + TRISD &= 0xFF9F; // Configure RD5-RD6 as outputs + + EnableInterrupts(); + AD1CON1bits.ASAM = 1; + + int i = 0; + + while (1) { + if (i == 0) { + AD1CON1bits.ASAM = 1; // Start conversion + } + send2displays(voltage); + delay(10); + i = (i + 1) % 20; + } + + return 0; +} + +void _int_(27) isr_adc(void) { + AD1CON1bits.ASAM = 0; // Stop conversion + int total = 0; + int *p = (int *)(&ADC1BUF0); + for (; p <= (int *)(&ADC1BUFF); p+=4) + total += *p; + int val_ad = total / SAMPLES; + voltage = (val_ad * 33 + 511) / 1023; + IFS1bits.AD1IF = 0; // Reset AD1IF +} diff --git a/2ano/2semestre/ac2/aula07/part2-1.c b/2ano/2semestre/ac2/aula07/part2-1.c new file mode 100644 index 0000000..e2af7bc --- /dev/null +++ b/2ano/2semestre/ac2/aula07/part2-1.c @@ -0,0 +1,32 @@ +#include + +int main() { + TRISBbits.TRISB4 = 1; + AD1PCFGbits.PCFG4 = 0; + AD1CON1bits.SSRC = 7; + AD1CON1bits.CLRASAM = 1; + AD1CON3bits.SAMC = 16; + AD1CON2bits.SMPI = 0; + AD1CHSbits.CH0SA = 4; + AD1CON1bits.ON = 1; + + IPC6bits.AD1IP = 2; // configure priority of A/D interrupts + IEC1bits.AD1IE = 1; // enable A/D interrupts + IFS1bits.AD1IF = 0; // clear A/D interrupt flag + + TRISD &= 0xF7FF; // Configure RD11 as output + + EnableInterrupts(); + AD1CON1bits.ASAM = 1; + + while (1); +} + +void _int_(27) isr_adc(void) { + volatile int adc_value; + LATDbits.LATD11 = 0; + adc_value = ADC1BUF0; + IFS1bits.AD1IF = 0; + AD1CON1bits.ASAM = 1; + LATDbits.LATD11 = 1; +} diff --git a/2ano/2semestre/ac2/aula07/part2-2.c b/2ano/2semestre/ac2/aula07/part2-2.c new file mode 100644 index 0000000..a817b2a --- /dev/null +++ b/2ano/2semestre/ac2/aula07/part2-2.c @@ -0,0 +1,37 @@ +#include + +int main() { + TRISBbits.TRISB4 = 1; + AD1PCFGbits.PCFG4 = 0; + AD1CON1bits.SSRC = 7; + AD1CON1bits.CLRASAM = 1; + AD1CON3bits.SAMC = 16; + AD1CON2bits.SMPI = 0; + AD1CHSbits.CH0SA = 4; + AD1CON1bits.ON = 1; + + IPC6bits.AD1IP = 2; // configure priority of A/D interrupts + IEC1bits.AD1IE = 1; // enable A/D interrupts + IFS1bits.AD1IF = 0; // clear A/D interrupt flag + + TRISD &= 0xF7FF; // Configure RD11 as output + + EnableInterrupts(); + AD1CON1bits.ASAM = 1; + + while (1) LATDbits.LATD11 = 0; +} + +void _int_(27) isr_adc(void) { + volatile int adc_value; + adc_value = ADC1BUF0; + IFS1bits.AD1IF = 0; + AD1CON1bits.ASAM = 1; + LATDbits.LATD11 = 1; +} + +// Conversão A/D: 3340 ns +// Conversão + latência + prologo: 4020 ns +// Epilogo: 632 ns +// +// Overhead total: 4020 - 3340 + 632 = 680 + 632 = 1312 ns