[elektro] STM8 Discovery --> 32 gyakorlati kérdés

Bali Zoltan eltexto at freemail.hu
Sun Dec 7 07:55:06 CET 2014


Hali!

Na én pont most nyüstölöm ezt és van amit nem értek.
Külső mexakítás portlábról mérem az időt a TIM3-al.
Fel és lefutó éllel meg akarom mérni a pulzus hosszát.

void EXTI1_IRQHandler(void)
{
   if(EXTI_GetITStatus(EXTI_Line1) != RESET)
   {
     if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_1))
     {
        /* TIM3 enable counter */
       TIM3->CR1 |= TIM_CR1_CEN;
       ADC_ClearFlag(ADC1,ADC_FLAG_OVR);
       ADC_ClearFlag(ADC2,ADC_FLAG_OVR);
       ADC_ClearFlag(ADC3,ADC_FLAG_OVR);
       DMA_Cmd(DMA2_Stream0, ENABLE);

       /* Start ADC1 Software Conversion */
       ADC_SoftwareStartConv(ADC1);
     }
     else
     {
       /* TIM3 disable counter */
       TIM3->CR1 &= (uint16_t)~TIM_CR1_CEN;
       SampleReady = 1;
     }
     /* Clear the EXTI line 1 pending bit */
     EXTI_ClearITPendingBit(EXTI_Line1);
   }
}

Elsőre 1usec időalapot állítottam a TIM3-nak.
37 a main-ban mért elvileg már álló TIM3->CNT értéke.
Az analizátorral 37.61us-ot mérek. Edigg érthető.
Szerettem volna pontosabban mérni, ezért 10MHz
időalapot állítottam a prescalerrel.

PrescalerValue = (uint16_t) ((SystemCoreClock / 2) / 10000000) - 1;

A rendszer órajel 144MHz, kerek 71 jön ki értékre. Viszont most
384-et mér a TIM3. Ezt viszont nem értem. Elég jelentős eltérés.

Van ötlete valakinek?

Köszi

Üdv.  Zoli







2014.12.06. 21:29 keltezéssel, elight írta:
> Sziasztok..
>
>
> Lehet pont nem ezt vártátok,
> de errefelé is olvasgatni  esetleg  hasznos lehet..
> https://www.aut.bme.hu/Upload/Pages/Szakirany/VillamosBsc/F4Discovery/stm32f4discovery-eclipse_v2.pdf
>
> Most olvastam, .visual  net- is befordítható pl. a nagyobb chipekbe.
>
> Ez nekem kicsit magas, mint teknősnek a létra..
> De szorgosan  nézelődök ..
>                   nekem is van egy kis panelkém ,és  életre kellne leheni
> valahogy.
>
> Üdv István
>
>



More information about the Elektro mailing list