Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

STM32 timer comparatore

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] STM32 timer comparatore

Messaggioda Foto Utentesilvio93 » 21 mag 2013, 23:36

Ciao a tutti,
sto cercando di rilevare la distanza tramite il seguente sensore: http://www.settorezero.com/wordpress/il-sensore-ad-ultrasuoni-hc-sr04/, per stamparla su display successivamente.

Premetto che il sensore funziona, perché genero un PWM che mi da un impulso da circa 20us e sull'oscilloscopio rilevo l'echo, e riconvertendolo mi da la misura in cm.

Il problema è che non ho ben capito come settare il TIM1 per catturare l'echo prodotto dal sensore e come leggere il valore del registro.

Codice: Seleziona tutto
/* GPIOA Configuration:TIM1 Channel1 as alternate function open-drain */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

  GPIO_Init(GPIOA, &GPIO_InitStructure);
   
   
// enable timer clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
   
   TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
   TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
   TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
   TIM_ICInitStructure.TIM_ICPrescaler = 0;
   TIM_ICInitStructure.TIM_ICFilter = 0;
   
   TIM_ICInit(TIM1 , &TIM_ICInitStructure);
   
      TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
   TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling;
   TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_IndirectTI;
   TIM_ICInitStructure.TIM_ICPrescaler = 0;
   TIM_ICInitStructure.TIM_ICFilter = 0;
   
   TIM_ICInit(TIM1 , &TIM_ICInitStructure);
   
   TIM_SelectInputTrigger(TIM1 , TIM_TS_TI1FP1);
   TIM_SelectSlaveMode(TIM1 , TIM_SlaveMode_Reset);
   TIM_SelectMasterSlaveMode(TIM1 , TIM_MasterSlaveMode_Enable);
   
   while(1){
   capture = TIM_GetCapture1(TIM1);
   
   lcd_pos(0,1);
   printf("Temp: %d", capture);
   }


Questo è il codice, se qualcuno mi spiegasse cosa fanno di preciso i settaggi del timer gliene sarei grato.
Grazie in anticipo
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[2] Re: STM32 timer comparatore

Messaggioda Foto Utentesilvio93 » 23 mag 2013, 11:40

Nessuno ha consigli da darmi?
Scusate l'insistenza ma prorpio non riesco a capire come configurare i timer in input capture, in modo da misurare il tempo di un impulso.
Cercando su google non ho trovato una spiegazione esaustiva e dal datasheet non ho capito molto.
A grandi linee credo di dover configurare un timer in input e far in modo che inizi a contare su un fronte di salita e generare l'interrupt sul fronte di discesa, e il tempo che impiega dovrebbe corrispende la lunghezza dell'impulso.
Ogni consiglio è ben accetto :-)
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[3] Re: STM32 timer comparatore

Messaggioda Foto Utentesimo85 » 23 mag 2013, 12:08

silvio93 ha scritto:e dal datasheet non ho capito molto.


Se non lo linki, nemmeno noi possiamo capire molto. :)
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[4] Re: STM32 timer comparatore

Messaggioda Foto Utentesilvio93 » 23 mag 2013, 12:21

Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[5] Re: STM32 timer comparatore

Messaggioda Foto Utentesimo85 » 23 mag 2013, 12:27

Dall'altro thread non ho più osservato il documento, sempre che sia lo stesso.

Ma a quale pagina si trova la descrizione?
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[6] Re: STM32 timer comparatore

Messaggioda Foto Utentesilvio93 » 23 mag 2013, 12:30

Il datasheet è sempre lo stesso
l'imput capture inizia a 225
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[7] Re: STM32 timer comparatore

Messaggioda Foto Utentesilvio93 » 26 mag 2013, 1:17

Allora nessuno riescie a darmi una mano?
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[8] Re: STM32 timer comparatore

Messaggioda Foto Utentemarco438 » 26 mag 2013, 7:15

Sollecitare le risposte (e questo e' il secondo solllecito) e' cosa poco gradita sul forum.
Se qualcuno ha la capacita' e la voglia di risponderti, lo fara' a tempo debito.
marco
Avatar utente
Foto Utentemarco438
37,1k 7 11 13
-EY Legend-
-EY Legend-
 
Messaggi: 16323
Iscritto il: 24 mar 2010, 15:09
Località: Versilia


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti