Eu tenho um kit LPC1114. Nos últimos dias, estive pesquisando a implementação do CMSIS do Cortex M0 para descobrir como as coisas são feitas nele. Até agora, entendi como cada registro é mapeado e como posso acessá-lo. Mas ainda não sei como as interrupções são implementadas nele. Tudo o que sei sobre interrupções no CMSIS é que existem alguns nomes de manipuladores de interrupção mencionados no arquivo de inicialização. E eu posso escrever meus próprios manipuladores simplesmente escrevendo uma função C com os mesmos nomes mencionados no arquivo de inicialização. O que me confunde é que, no guia do usuário, é informado que todo o GPIO pode ser usado como fonte de interrupção externa. Mas há apenas 4 interrupções do PIO mencionadas no arquivo de inicialização. Então me conte:
- Como posso implementar manipuladores de interrupção externos para outros GPIOs?
- Onde a tabela de interrupções é mapeada no CMSIS?
- Quais são as principais diferenças entre o NVIC e a implementação de interrupção nos AVRs / PICs? (exceto que o NVIC pode ser mapeado em qualquer lugar no flash)
fonte