This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
et:avr:external_interrupts [2014/01/30 09:54] – rellermaa | et:avr:external_interrupts [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 14: | Line 14: | ||
Lähtudes tööpõhimõttelt, | Lähtudes tööpõhimõttelt, | ||
- | ~~PB~~ | + | Atmeli xmega seeria kontrolleritel on välised katkestused realiseeritud natuke erinevalt võrreldes tavaliste 8-bitiste kontrolleritega. Atmeli xmega seerial on igale siinile omistatud kaks välist katkestust INT0 ja INT1, mis on võimalik kasutades biti maski ühendada suvalise siini viiguga (või mitmega korraga). |
<box 100% round # | <box 100% round # | ||
Line 28: | Line 29: | ||
} | } | ||
- | int main() | + | // Põhiprogramm |
+ | int main(void) | ||
{ | { | ||
// Siini E viigu 7 muutmine sisendiks biti 7 nullimise teel | // Siini E viigu 7 muutmine sisendiks biti 7 nullimise teel | ||
Line 51: | Line 53: | ||
</ | </ | ||
- | XMega puhul otsime | + | Xmega puhul otsime |
<code c> | <code c> | ||
Line 62: | Line 64: | ||
} | } | ||
- | int main() | + | // Põhiprogramm |
+ | int main(void) | ||
{ | { | ||
// Siini E viigu 0 muutmine sisendiks biti 0 nullimise teel | // Siini E viigu 0 muutmine sisendiks biti 0 nullimise teel | ||
Line 75: | Line 78: | ||
// Siini E INT0 katkestuse prioriteedi määramine | // Siini E INT0 katkestuse prioriteedi määramine | ||
PORTE.INTCTRL |= (PORT_INT0LVL_MED_gc); | PORTE.INTCTRL |= (PORT_INT0LVL_MED_gc); | ||
+ | |||
// Viigu määramine siini E INT0 sisendiks | // Viigu määramine siini E INT0 sisendiks | ||
- | PORTC.INT0MASK = (PIN0_bm) | + | PORTC.INT0MASK = (PIN0_bm); |
// Keskmise prioriteediga katkestuste lubamine | // Keskmise prioriteediga katkestuste lubamine | ||
PMIC.CTRL |= PMIC_MEDLVLEN_bm; | PMIC.CTRL |= PMIC_MEDLVLEN_bm; | ||
+ | |||
// Globaalne katkestuste lubamine | // Globaalne katkestuste lubamine | ||
sei(); | sei(); |