[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