Interrupção na borda de subida

Software e Hardware para uC PSoC

Moderadores: andre_luis, 51

Interrupção na borda de subida

Mensagempor Abuda » 20 Set 2008 10:50

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?
Abuda
Byte
 
Mensagens: 214
Registrado em: 04 Mai 2007 09:38
Localização: SP

Mensagempor Abuda » 20 Set 2008 11:15

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.
Abuda
Byte
 
Mensagens: 214
Registrado em: 04 Mai 2007 09:38
Localização: SP


Voltar para Cypress

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x