[elektro] STM32F4 EXTI rotary encoder
hg12345
hg12345 at freemail.hu
Sat Jun 27 19:09:17 CEST 2015
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]
More information about the Elektro
mailing list