SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
COBEC-SEB 2017
Hands on com ADC e DMA
Prof. Dr. Marcelo Barros de Almeida
Prof. Dr. Márcio José da Cunha
Proposta de Aplicação
● Criar uma amostragem de 3 canais do ADC com
taxa fixa e transferindo dados via DMA
– Usar o TIM6 para temporização
– Usar os canais IN0, IN1 e IN2
– Amostrar os 3 canais a cada 1ms
● Lembrar de:
– Habilitar o RCC para HSE de 8MHz, PLL e clock interno
máximo de 216MHz
– Habilitar o SWD via SYS
Clock e SWD
TIM6
periodo=
CLKINT
( preescalar+1)frequencia
−1
periodo=
108000000
(1+1)1000
−1=53999
ADC
ADC
NVIC
Geração
Código
// chamar essa funcao de dentro do main()
void demo_adc_start(void)
{
  adc_sample_pos = 0;
  adc_process = false;
  // parte os perifericos
  HAL_ADC_Start_DMA(&hadc1,(uint32_t *) adc_data, ADC_NUM_CHANNELS);
  HAL_TIM_Base_Start(&htim6);
  while(1)
  {
    if(adc_process)
    {
      uint16_t n, m;
      uint32_t sum;
      for(n = 0 ; n < ADC_NUM_CHANNELS ; n++)
      {
        sum = 0;
        for(m = 0 ; m < ADC_NUM_SAMPLES ; m++)
          sum += adc_data_samples[n][m];
        adc_data_avg[n] = ((float) sum) / ADC_NUM_SAMPLES;
      }
      adc_process = false;
    }
  }
}
Código
#include <stdint.h>
#include <stdbool.h>
#include "main.h"
#include "stm32f7xx_hal.h"
#include "demo_adc.h"
#define ADC_NUM_CHANNELS 3
#define ADC_NUM_SAMPLES  10
extern ADC_HandleTypeDef hadc1;
extern TIM_HandleTypeDef htim6;
uint16_t adc_data[ADC_NUM_CHANNELS];
uint16_t adc_data_samples[ADC_NUM_CHANNELS][ADC_NUM_SAMPLES];
uint32_t adc_sample_pos;
float adc_data_avg[ADC_NUM_CHANNELS] = { 0 };
bool adc_process;
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
  uint16_t n;
  for(n = 0 ; n < ADC_NUM_CHANNELS ; n++)
    adc_data_samples[n][adc_sample_pos] = adc_data[n];
  adc_sample_pos++;
  if(adc_sample_pos >= ADC_NUM_SAMPLES)
  {
    adc_sample_pos = 0;
    adc_process = true; // precisa processar em menos de 1ms
  }
  HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
}

Weitere ähnliche Inhalte

Was ist angesagt?

Disponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso PráticoDisponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso PráticoJeronimo Zucco
 
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Redes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetRedes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetMatheus Lincoln
 
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos OrsoniCPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Aula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela FilterAula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela FilterAndrei Carniel
 
Aula 8.3 - Iptables Tabela NAT
Aula 8.3 - Iptables Tabela NATAula 8.3 - Iptables Tabela NAT
Aula 8.3 - Iptables Tabela NATAndrei Carniel
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalhoRafael Cruz
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentiumEMSNEWS
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linuxguest4e5ab
 

Was ist angesagt? (20)

Zilog
ZilogZilog
Zilog
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Disponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso PráticoDisponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso Prático
 
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
 
O menor Rastreador do Mercado
O menor Rastreador do MercadoO menor Rastreador do Mercado
O menor Rastreador do Mercado
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
 
Redes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetRedes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internet
 
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos OrsoniCPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
 
Aula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela FilterAula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela Filter
 
Exercicios 06
Exercicios 06Exercicios 06
Exercicios 06
 
Aula 8.3 - Iptables Tabela NAT
Aula 8.3 - Iptables Tabela NATAula 8.3 - Iptables Tabela NAT
Aula 8.3 - Iptables Tabela NAT
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
Administração de Redes Linux - III
Administração de Redes Linux - IIIAdministração de Redes Linux - III
Administração de Redes Linux - III
 
Tutorial sobre iptables
Tutorial sobre iptablesTutorial sobre iptables
Tutorial sobre iptables
 
Ko 7 kdp-05
Ko 7 kdp-05Ko 7 kdp-05
Ko 7 kdp-05
 
Lista 1 exercicios
Lista 1 exerciciosLista 1 exercicios
Lista 1 exercicios
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linux
 

Ähnlich wie [9/9] Sistemas embarcados de alto desempenho para tratamento e processamento de sinais biomédicos - Plataformas ARM Cortex M e CMSIS-DSP

Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfApostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfSilvanildoManoeldaSi
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.Renan Louzada
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdftccunip
 
Antonio marquesd matos(nossacaixa)_implementação de redes appn_paper
Antonio marquesd matos(nossacaixa)_implementação de redes appn_paperAntonio marquesd matos(nossacaixa)_implementação de redes appn_paper
Antonio marquesd matos(nossacaixa)_implementação de redes appn_paperJoao Galdino Mello de Souza
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostasForça Tauá
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CEmbarcados
 
Aula 2 - transmissão digital: Modulação e Multiplexação
Aula 2 -  transmissão digital: Modulação e MultiplexaçãoAula 2 -  transmissão digital: Modulação e Multiplexação
Aula 2 - transmissão digital: Modulação e MultiplexaçãoLeandro Sausen
 
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015Armando Alaminos Bouza
 
2 encaminhamento
2 encaminhamento2 encaminhamento
2 encaminhamentozeu1507
 
Julio Silvello - Tms320 C55 X
Julio Silvello -  Tms320 C55 XJulio Silvello -  Tms320 C55 X
Julio Silvello - Tms320 C55 Xjsilvello
 
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdfAA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdfSilvanildoManoeldaSi
 
kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4
kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4
kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4Pedro Henrique
 

Ähnlich wie [9/9] Sistemas embarcados de alto desempenho para tratamento e processamento de sinais biomédicos - Plataformas ARM Cortex M e CMSIS-DSP (20)

Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfApostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.
 
Medição Usando Cloud Computing
Medição Usando Cloud ComputingMedição Usando Cloud Computing
Medição Usando Cloud Computing
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
 
ARM
ARMARM
ARM
 
Antonio marquesd matos(nossacaixa)_implementação de redes appn_paper
Antonio marquesd matos(nossacaixa)_implementação de redes appn_paperAntonio marquesd matos(nossacaixa)_implementação de redes appn_paper
Antonio marquesd matos(nossacaixa)_implementação de redes appn_paper
 
Microprocessadores/Microcontroladores para OBC.
Microprocessadores/Microcontroladores para OBC. Microprocessadores/Microcontroladores para OBC.
Microprocessadores/Microcontroladores para OBC.
 
Roteiro exp2
Roteiro exp2Roteiro exp2
Roteiro exp2
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostas
 
Novidades do CAT3D em 2014
Novidades do CAT3D em 2014Novidades do CAT3D em 2014
Novidades do CAT3D em 2014
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
 
Aula 2 - transmissão digital: Modulação e Multiplexação
Aula 2 -  transmissão digital: Modulação e MultiplexaçãoAula 2 -  transmissão digital: Modulação e Multiplexação
Aula 2 - transmissão digital: Modulação e Multiplexação
 
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
 
2 encaminhamento
2 encaminhamento2 encaminhamento
2 encaminhamento
 
Julio Silvello - Tms320 C55 X
Julio Silvello -  Tms320 C55 XJulio Silvello -  Tms320 C55 X
Julio Silvello - Tms320 C55 X
 
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdfAA Apresentacao_TIMER0_PIC16F877A_2016.pdf
AA Apresentacao_TIMER0_PIC16F877A_2016.pdf
 
kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4
kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4
kkkkkkkkkkkkkkkkkkkkkkkkkWww.lsi.usp.br ~cranieri pcs2476p1c4
 

Mehr von Marcelo Barros de Almeida

Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosMarcelo Barros de Almeida
 

Mehr von Marcelo Barros de Almeida (12)

Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Administração de Redes Linux - II
Administração de Redes Linux - IIAdministração de Redes Linux - II
Administração de Redes Linux - II
 
Administração de Redes Linux - I
Administração de Redes Linux - IAdministração de Redes Linux - I
Administração de Redes Linux - I
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Treinamento Qt básico - aula III
Treinamento Qt básico - aula IIITreinamento Qt básico - aula III
Treinamento Qt básico - aula III
 
Treinamento Qt básico - aula II
Treinamento Qt básico - aula IITreinamento Qt básico - aula II
Treinamento Qt básico - aula II
 
Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 

[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento de sinais biomédicos - Plataformas ARM Cortex M e CMSIS-DSP