Perguntas com a marcação «interrupts»

Um mecanismo para o controle do fluxo do programa em um computador. Quando interrompido, um computador salva seu estado operacional atual e muda para a execução do código que depende de qual interrupção foi gerada. As interrupções podem ser de origem de hardware ou de software; interrupções originadas por software são chamadas traps. É um mecanismo alternativo à pesquisa e é a base em torno da qual a maioria das E / S, multitarefa e controle é implementada.

24
Técnicas de delimitação / sincronização de protocolo serial

Como a comunicação serial assíncrona está amplamente difundida entre os dispositivos eletrônicos até hoje em dia, acredito que muitos de nós já encontramos essa pergunta periodicamente. Considere um dispositivo eletrônico De um computador PCconectado à linha serial (RS-232 ou similar) e necessário...

17
O SPI é seguro para ser interrompido?

Estou escrevendo para um cartão microSD de dentro do meu firmware, mas é a tarefa de menor prioridade, para que possa ser interrompido por outras tarefas enquanto estiver no meio da leitura / gravação. Agora, suponha que eu tenha me comunicado com este cartão microSD usando um UART. O problema...

17
Evento Stm32 e interrupções

Comecei a estudar interrupções no stm32, especificamente na placa de descoberta stm32f4. Encontrei este exemplo em que você deve pressionar o botão para iniciar a interrupção e pressionar novamente para interrompê-lo. Nesta linha: EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt, temos que...

15
Como implementar seções críticas no ARM Cortex A9

Estou portando algum código legado de um núcleo ARM926 para o CortexA9. Esse código é baremetal e não inclui um SO ou bibliotecas padrão, todas personalizadas. Estou com uma falha que parece estar relacionada a uma condição de corrida que deve ser evitada pelo corte crítico do código. Quero...

13
Instrução AVR SEI

A instrução AVR SEI ( http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SEI.html ) aguarda a conclusão da próxima instrução antes de ativar as interrupções. Se eu usar outra instrução para definir o sinalizador I no SREG, isso também esperará 1 instrução? Em outras palavras: a espera é um...

12
Como o controlador sabe quando pular para o ISR?

Estou falando de coisas no nível central. Tanto quanto eu entendo, o núcleo do controlador apenas executa instruções que são buscadas na memória (Buscar - Decodificar - Executar). Quando uma interrupção chega, como o núcleo / ALU decide pular para o ISR? Como nós, ou o compilador, não...

10
Interrupção de software vs função

Após cerca de 3 anos trabalhando com MCUs, ainda não sei para que serve o uso de software interrompe? Eu fiz vários trabalhos com o STM32 e nunca usei as interrupções de software. De fato, esta é uma grande questão para mim: Por que quando podemos usar uma função simples para executar uma tarefa,...

10
Uso correto de uma interrupção de troca de pinos

Estou tentando usar interrupções de troca de pinos para detectar botões pressionados. Até agora, nunca trabalhei com esse tipo de interrupção e existem alguns problemas, por isso quero ter certeza se esse é o uso correto. Se obtive a folha de dados correta, as seguintes ações devem ser feitas para...

10
Ativar interrupção, mas nenhum ISR

Gostaria de saber o que acontece se uma interrupção estiver ativada (por exemplo: interrupção perdida por arbitragem no módulo CAN do LPC1778 do NXP), mas nenhum ISR foi definido para a interrupção. Quando ocorre uma interrupção, eu sei que o respectivo sinalizador de interrupção será definido,...

10
Algum motivo para não usar o Timer0 no AVR?

Apenas uma pergunta básica ... Para o arduino / avr / ATMega328, encontro muitos exemplos usando o Timer1 (há até uma biblioteca inteira), mas raramente alguns que utilizam o Timer0 (ou o Timer2). Agora, eu sei que o uso de qualquer um desses cronômetros para controlar um método ISR desabilitará o...

10
Seções críticas em Cortex-M3

Estou pensando um pouco sobre a implementação de seções de código crítico em um Cortex-M3, onde exceções não são permitidas devido a restrições de tempo ou problemas de simultaneidade. No meu caso, estou executando um LPC1758 e tenho um transceptor TI CC2500 a bordo. O CC2500 possui pinos que...