Differences

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

Link to this comparison view

Next revision
Previous revision
ru:avr:external_interrupts [2013/08/14 16:22] – создано eduardtlmkru:avr:external_interrupts [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 14: Line 14:
 Исходя из принципов работы, существуют два вида внешних прерываний: синхронизированный с тактом контроллера и асинхронный. Синхронизированные прерывания работают, запоминая значение выводов, что означает, что логические изменения находятся путём сравнения значений, полученных от двух разных тактов. Если логические изменения внешнего сигнала происходят быстрее, чем идёт рабочий такт, то прерывания либо создаются неверно, либо вовсе пропускаются. Асинхронные прерывания не зависят от такта контроллера и позволяют определить быстро меняющийся внешний сигнал – логический нуль должен удерживаться сигналом как минимум в 50 ns. У ATmega128 4 синхронизированных и 4 асинхронных внешних прерывания. Исходя из принципов работы, существуют два вида внешних прерываний: синхронизированный с тактом контроллера и асинхронный. Синхронизированные прерывания работают, запоминая значение выводов, что означает, что логические изменения находятся путём сравнения значений, полученных от двух разных тактов. Если логические изменения внешнего сигнала происходят быстрее, чем идёт рабочий такт, то прерывания либо создаются неверно, либо вовсе пропускаются. Асинхронные прерывания не зависят от такта контроллера и позволяют определить быстро меняющийся внешний сигнал – логический нуль должен удерживаться сигналом как минимум в 50 ns. У ATmega128 4 синхронизированных и 4 асинхронных внешних прерывания.
  
-~~PB~~+<pagebreak>
  
-<box 100% round #EEEEEE|Näide>+<box 100% round #EEEEEE|Пример>
  
-Vaja on panna ATmega128 viik number ehk siini E viik tekitama katkestustkui selle väärtus muutubSellele viigule vastab väline katkestus INT7, mis on sünkroonne.+Требуется заставить вывод ATmega128 номер (вывод шины Е) создать прерываниеесли его значение изменитсяЭтому выводу соответствует внешнее прерывание INT7, которое синхронно.
  
 <code c> <code c>
 #include <avr/interrupt.h> #include <avr/interrupt.h>
  
-// Välise katkestuse programm+// Программа внешнего прерывания
 ISR(INT7_vect) ISR(INT7_vect)
 { {
- // Tee midagi+ // Сделай что-нибудь
 } }
  
 int main() int main()
 { {
- // Siini E viigu muutmine sisendiks biti nullimise teel+ // Изменение вывода шины Е входом путём обнуления бита 7
  DDRE &= ~(1 << PIN7);  DDRE &= ~(1 << PIN7);
  
- // Siini E viigule 7 pull-up takisti määramine sisendi ujumise vastu+ // Установление pull-up резистора в вывод 7 шины Е от плавания
  PORTE |= (1 << PIN7);  PORTE |= (1 << PIN7);
  
- // Väliste katkestuste seaderegistris katkestuse + // Установление прерывания в логическое изменение 
- // tekitajaks loogilise muutuse määramine+ // в регистре конфигурации внешних прерываний
  EICRB = (1 << ISC70);  EICRB = (1 << ISC70);
  
- // Välise katkestuse lubamine+ // Разрешение внешнего прерывания 7
  EIMSK |= (1 << INT7);  EIMSK |= (1 << INT7);
  
- // Globaalne katkestuste lubamine+ // Разрешение глобального прерывания
  sei();  sei();
  
- // Lõputu programmitsükkel+ // Бесконечный цикл программы
  while (1) continue;  while (1) continue;
 } }
Line 54: Line 54:
 </box> </box>
  
-Lisaks üksikute viikude tekitatavatele katkestustele on suurematel AVR-idel võimalik kasutada ka tervete gruppide viikude loogiliste väärtuste muutuste katkestusiNeid katkestusi nimetatakse lihtsalt viigu muutuse katkestusteks (inglise keeles //pin change interrupt//). Need rakenduvad siiskui vähemalt ühe viigu väärtus grupis muutub.+В дополнение к прерываниям, созданным одиночными выводами, в крупных AVR можно использовать прерывания изменений логических значений целых групп выводовТакие прерывания называют просто прерыванием изменения вывода (англ. //pin change interrupt//). Они запускаются тогдакогда изменяется значение хотя бы одного вывода в группе.
ru/avr/external_interrupts.1376497328.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