Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:avr:external_interrupts [2014/01/30 11:19] rellermaaet: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, on väliseid katkestusi kahte liiki: kontrolleri taktiga sünkroniseeritud ja asünkroonsed. Sünkroniseeritud katkestused toimivad sisendite väärtuse meelespidamise teel, mis tähendab, et loogilised muutused leitakse kahel erineval taktil saadud väärtuste võrdlemise teel. Kui välise signaali loogilised muutused toimuvad kiiremini, kui käib töötakt, siis katkestused, kas ei teki õigesti või jäävad üldse vahele. Asünkroonsed katkestused ei sõltu kontrolleri taktist ja võimaldavad tuvastada ka kiiremini muutuvat välist signaali - loogilist nivood peab signaal hoidma vähemalt 50 ns. ATmega128-l on 4 sünkroniseeritud ja 4 asünkroonset välist katkestust. Lähtudes tööpõhimõttelt, on väliseid katkestusi kahte liiki: kontrolleri taktiga sünkroniseeritud ja asünkroonsed. Sünkroniseeritud katkestused toimivad sisendite väärtuse meelespidamise teel, mis tähendab, et loogilised muutused leitakse kahel erineval taktil saadud väärtuste võrdlemise teel. Kui välise signaali loogilised muutused toimuvad kiiremini, kui käib töötakt, siis katkestused, kas ei teki õigesti või jäävad üldse vahele. Asünkroonsed katkestused ei sõltu kontrolleri taktist ja võimaldavad tuvastada ka kiiremini muutuvat välist signaali - loogilist nivood peab signaal hoidma vähemalt 50 ns. ATmega128-l on 4 sünkroniseeritud ja 4 asünkroonset välist katkestust.
  
-Atmeli XMega seeria kontrolleritel on välised katkestused realiseeritud teistmoodi tavalistest 8-bitistest kontrolleritestXMega seerial on igale siinile omistatud kaks välist katkestust INT0 ja INT1, mis on võimalik kasutades biti maski ühendada suvalise siini viguga (või mitmega korraga).+Atmeli xmega seeria kontrolleritel on välised katkestused realiseeritud natuke erinevalt võrreldes tavaliste 8-bitiste kontrolleritegaAtmeli 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).
  
-~~PB~~ 
  
 <box 100% round #EEEEEE|Näide> <box 100% round #EEEEEE|Näide>
Line 30: 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 53: Line 53:
 </code> </code>
  
-XMega puhul otsime sisendimuutust viigult PORTE0:+Xmega puhul otsime sisendi muutust viigul PORTE0:
  
 <code c> <code c>
Line 64: 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 77: 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);
Line 82: Line 84:
  // 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();
et/avr/external_interrupts.1391080746.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0