[elektro] STM32F4 EXTI rotary encoder
uprogc .
uprogc at gmail.com
Sat Jun 27 20:17:15 CEST 2015
F4.
2015-06-27 21:13 GMT+03:00 hg12345 <hg12345 at freemail.hu>:
> Miért adna hiba jelet? Az ALIAS egy C kiegészítés, ha tudja ezt akkor
> működnie kell. Azt nem tudom mennyire egyszerű, ha így kell engedélyezni
> akkor igen. Az IT feloldás lesz egy kicsit izgalmasabb, vagy rábízod magad
> a jószerencsére. Ha van DPS-p ebben, akkor ez F3 (72MHz) vagy F4 (168MHz)
> vagy F7(300MHz) akkor olyan teljesítmény van benne, hogy a polling kezelés
> nem észrevehető.De nem a SYSTICK-re kéne felfűzni, hanem egy független TIMR
> IT-re (ebből van 17db ezekben), így mindentől függetlenül állítható az IT
> szint, persze ha RTOST használsz akkor ez se kell.
> "uprogc ." <uprogc at gmail.com> írta:
> >Szia,
> >
> >Koszi a reszletes leirast.
> >
> >Roviden:
> >Szoval az, hogy erre nem ad a fordito hibat meg nem jelenti azt hogy
> >mukodni fog ?
> >void EXTI4_15_IRQHandler(void) Ez a belinkelt oldalrol van.
> >
> >
> >Tovabba :
> > NVIC_InitStruct.NVIC_IRQChannel = EXTI4_IRQn | EXTI9_5_IRQn;
> > EXTI_InitStruct.EXTI_Line = ROT_ENC_TRIGGER_EXTI_LINE |
> >ROT_ENC_DIRECTION_EXTI_LINE;
> >SYSCFG_EXTILineConfig(ROT_ENC_SYSCFG_EXTI, ROT_ENC_TRIGGER_EXTI_PS |
> >ROT_ENC_DIRECTION_EXTI_PS);
> >
> >Vagy nem ennyire egyszeru ?
> >
> >
> >Softwares polling-al az a bajom, hogy a DSPtol nem kellene tul sok idot
> >elvegyen, ezert is akarom attenni a systicktol IT-re.
> >
> >
> >U,
> >Szabi
> >
> >2015-06-27 20:09 GMT+03:00 hg12345 <hg12345 at freemail.hu>:
> >
> >> Az így nem fog menni! magad nem tudsz ilyen módon új IT-t csinálni, de
> az
> >> IT-k mint WEAK vannak definiálva a legtöbb ARM rendszerben STARTUP_***.s
> >> file-ban, csak így oldható meg hogy saját IT handler csinálj, a
> lehetséges
> >> IT-kre. Innen kezdve már csak egy dolgod van hogy a két IT-t EXTI4 és
> az
> >> EXT5...9 egy feldolgozóra programra definiáld. Erre használható az
> "ALIAS"
> >> K.E.I.L-ben így kell csinálni void EXTI4_IRQHandler(void)
> >> ALIAS(EXT4_15_IRQHAndler); //az IT-t használom a program
> >> indításához is..... void EXTI9_5_IRQHandler(void)
> >> ALIAS(EXT4_15_IRQHAndler) és most megcsinálod a közös IT feldolgozást:
> void
> >> EXT4_15_IRQHAndler(void){............} Arra azért kell vigyázni, hogy az
> >> NVIC automatikus IT kérelem törlés mindig arra vonatkozik ami (aki)
> >> meghívja a rutint, vagyis az első IT hívásra. Ezért ha közben
> feldolgozod a
> >> másik IT-t , akkor attól függően hj a PEND bitet nem törlöd ki belül,
> akkor
> >> egy"már feldolgozott IT-re fogsz "fantom" IT kapni... hibának fogod
> látni.)
> >> Remélem érthetően írtam le. A legtöbb korrekt programozási rendszerben a
> >> fenti megoldás tartalmazza a "gyári" hiszen a nem használt IT-ket
> >> összegyűjtik a "Default_IRQHandler"-ben is hiba esetén itt egy végtelen
> >> ciklusban megakasztják a program futását. Ha erre rákeresel megtalálod a
> >> fenti megoldást.Ez már szerencse kérdése, hogy ez az INIT-ben asm-ben
> >> oldották meg, vagy magasabb szinten C-ben. :-)
> >> -------------------------------------------------------------Ennél
> sokkal
> >> egyszerűbb és üzembiztosabb, ha független IT-ként kezeled az egészed és
> >> közös CALLBACK függvényre vezeted vissza az encoder feldolgozást.
> Általában
> >> ezt csinálják a legtöbb IT-ben... 10KHz egy peridoikus IT-ben egy
> softwares
> >> polling bőven kiszolgál és sokkal egyszerűbb! Ha nagyobb sebesség kell,
> >> amit kötve hiszek, :-(), akkor át kell huzalozni a bekötést, és TMR2,3,4
> >> közvetlenül kezeli az quadencodereket is ....
> >>
> =================================================================================Elnézést,
> >> de a kérdéseid alapján felvetődik egy belső hang, elolvastad a
> MANUAL-t?Az
> >> ST különösen figyelmes a fejlesztőkkel, általában $10 adja a NUCLEO( ez
> a
> >> modernebb) és a DISCOVERY demó boardjait (itthon a FDH Kft ingyen
> kiszállít
> >> másnapra, BP-n), amit tartalmazza a teljes értékű debuggert/programozót
> is.
> >> Netről letölthető mindegyikhez a mintapélda csomag, ami nagyon sok
> példát
> >> tartalmaz. Érdemes lenne indulásként ezekkel egy picit gyakorolni.
> >> "uprogc ." <uprogc at gmail.com> írta:
> >> >ui: Talan igy ?
> >> >
> >> >EXTI4_15_IRQHandler(void)
> >> >{
> >> >
> >> >if (EXTI_GetITStatus(EXTI_Line4) != RESET ||
> EXTI_GetITStatus(EXTI_Line5)
> >> !=
> >> >RESET)
> >> >...
> >> >
> >> >}
> >> >
> >> >
> >> >2015-06-27 18:56 GMT+03:00 uprogc . <uprogc at gmail.com>:
> >> >
> >> >> Szia,
> >> >>
> >> >> Koszi.
> >> >>
> >> >> Kozben talaltam valamit, ki fogom probalni:
> >> >>
> >>
> http://electronics.stackexchange.com/questions/99915/stm32-rotary-encoder-with-hardware-interrupts
> >> >> Meg lehet azt csinalni, hogy az EXTI4 es az EXTI5 egy IT-be fusson
> be ?
> >> >>
> >> >>
> >> >> U,
> >> >> Szabi
> >> >>
> >> >> 2015-06-26 19:27 GMT+03:00 elight <elight at gmail.hu>:
> >> >>
> >> >>> Na EZ nekem is jól jött volna , amikor elkezdtem ezzel
> foglalkozni !
> >> >>> :-) :-) :-)
> >> >>>
> >> >>>
> >> >>> http://embedded-lab.com/blog/?p=9149
> >> >>>
> >> >>> Üdv István
> >> >>>
> >> >>>
> >> >>>
> >> >>> 2015-06-26 13:11 keltezéssel, elight írta:
> >> >>> > Szia
> >> >>> >
> >> >>> >
> >> >>> > az EXTI jól működik... ha jól konfigolod...
> >> >>> > Rakj külső felhúzót ,
> >> >>> > és ha optikai , nem is kell a kondi.
> >> >>> > Az exti-nél a jel polarity-t kell minden megszakításnál
> >> >>> > váltogatni.. És az akkor vett minták alapján a forgatás könnyen
> >> >>> > kitáblátozatolható.. Nem volt ezzel gondom..
> >> >>> > Olyan gyors, ahogy tekereg...
> >> >>> >
> >> >>> > Üdv István
> >> >>> > 2015-06-26 13:01 keltezéssel, uprogc . írta:
> >> >>> >> Sziasztok,
> >> >>> >>
> >> >>> >> Eddig Systick-el olvastam be a rotary enkodert, kb 3 ms-ra van
> >> allitva,
> >> >>> >> mukodik.
> >> >>> >> Mivel tobb lepesu optikai enkodert szeretnek majd hasznalni a
> >> >>> mechanikus
> >> >>> >> helyett, gondoltam atteszem EXTI-re. Hat nem mukodik.
> >> >>> >> Gondoltam prell van, 100nF-100pF -ig tobb erteket kiprobaltam, de
> >> nem
> >> >>> >> jo.
> >> >>> >> Meg a 100 pF-al is mintha belassulna, de inkabb bedoglik. Meg a
> >> lassu
> >> >>> >> lepeseket sem veszi.
> >> >>> >>
> >> >>> >> Erdemes kulsofelhuzo ellenallassal es kondival megprobalni ?
> >> >>> >> Egyeb otlete valakinek otlete ezzel kapcsolatosan?
> >> >>> >> (Bekotesek jok ;) )
> >> >>> >>
> >> >>> >> U,
> >> >>> >> Szabi
> >> >>> >> -----------------------------------------
> >> >>> >> elektro[-flame|-etc]
> >> >>> >>
> >> >>> >
> >> >>>
> >> >>> -----------------------------------------
> >> >>> elektro[-flame|-etc]
> >> >>>
> >> >>
> >> >>
> >> >-----------------------------------------
> >> > elektro[-flame|-etc]
> >> -----------------------------------------
> >> elektro[-flame|-etc]
> >>
> >-----------------------------------------
> > elektro[-flame|-etc]
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list