Página 1 de 1

Interrupção na borda de subida

MensagemEnviado: 20 Set 2008 10:50
por Abuda
Pessoal,

Tentei implementar uma interrupção na borda de subida da porta P1.3, e ela não é chamada de forma alguma.

Estou com a seguinte configuração:

#pragma interrupt_handler PSoC_GPIO_ISR


void PSoC_GPIO_ISR(void)
{
count_flag=1;
}


void init(void)
{

PRT1IC0=0x00;
PRT1IC1=0x08;
PRT1IE=0x08;

M8C_EnableGInt;
}

Caso ela seja chamada eu acendo um led em outra parte do programa.

Configurei a porta na parte visual do psoc designer como StdCPU, HighZ,RisingEdge.

Na realidade ja tentei de tudo e ela nunca é chamada.

Alguem tem um exemplo ou conseguiu fazer rodar esta interrupção?

MensagemEnviado: 20 Set 2008 11:15
por Abuda
Solucionei a questão:

Primeiro habilitei no settings o enable interrupt control.

coloquei no programa
M8C_EnableIntMask(INT_MSK0, INT_MSK0_GPIO);
M8C_EnableGInt;

A segunda parte e que existe um BUG no Psoc designer que ao invés de escrever _PSoC_GPIO_ISR no arquivo boot.asm escreve apenas PSoC_GPIO_ISR.

É só adicionar o tal underline ("_") na frente e funciona.

Reparei que todas interrupções tem o tal underline e só esta ele gerava sem.