ICD2 + ASM + INTERRUPÇÃO

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

ICD2 + ASM + INTERRUPÇÃO

Mensagempor rafael.wachter » 31 Ago 2010 13:41

Programa bem basicão, um contador em assembly com um botão ligado no pino de int. externa do 16F870
o valor eh apresentado em dois display de 7 segmentos.
No MpLab SIM funfou, gravei, e o q aconteceu??? Não funcionou, os display estavam invertidos, o valor da dezena aparecia na unidade e vice-versa.

Resolvi debugar no hardware mesmo. Adaptei o programa (nop no endereço 0x00 e o mplab tirei de modo release e botei em debug, creio eu q seja soh isso) e comecei a debugar, descobri o problema dos displays, problema bem idiota, eu tava usando display de anodo comum e transistor PNP para acionar e no programa estava setando eles BSF DISP_UNIDADE e o correto era BCF DISP_UNIDADE
Problema corrigido, maasss

o q começou a acontecer, pressionava o botão e ele não entrava na interrupção de jeito nenhum

O mesmo programa tirei do modo debug, recompilei e regravei
Agora com o ICD2 desconectado o programa funciona :shock: :shock:


whatahell q tah acontecendo? Alguém tem uma ideia do q eu esqueci de fazer???
Any program which runs right is obsolete.
Avatar do usuário
rafael.wachter
Nibble
 
Mensagens: 89
Registrado em: 19 Nov 2008 13:12
Localização: no RS tchê

Mensagempor Sergio38br » 31 Ago 2010 16:41

qdo vc compilou para debugar qual arquivo .inc vc incluiu no projeto???

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor rafael.wachter » 31 Ago 2010 16:47

o mesmo pra compilação normal <p16f870.inc>

jah usei o ICD2 outra vez um tempo atrás, mas não com interrupção
e usei sempre o mesmo arquivo de include
Any program which runs right is obsolete.
Avatar do usuário
rafael.wachter
Nibble
 
Mensagens: 89
Registrado em: 19 Nov 2008 13:12
Localização: no RS tchê

Mensagempor Sergio38br » 31 Ago 2010 17:01

Desculpe, quiz dizer o arquivo . lkr, veja o que diz no inicio do 16f870i.lkr " // Sample ICD2 linker command file for 16F870
"...

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor rafael.wachter » 01 Set 2010 09:37

olhei o arquivo C:\Arquivos de programas\Microchip\MPASM Suite\LKR\16f870i.lkr

qual seria a função dele extamente? Pois da outra vez q utilizei o ICD2 para debugar, não alterei nada disso, nem sequer adicionei ao projeto

Código: Selecionar todos
// Sample ICD2 linker command file for 16F870

LIBPATH  .

CODEPAGE   NAME=page0    START=0x0      END=0x6FF
CODEPAGE   NAME=debug    START=0x700    END=0x7FF    PROTECTED
CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED
CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
CODEPAGE   NAME=eedata   START=0x2100   END=0x213F   PROTECTED

DATABANK   NAME=sfr0     START=0x0      END=0x1F     PROTECTED
DATABANK   NAME=sfr1     START=0x80     END=0x9F     PROTECTED
DATABANK   NAME=sfr2     START=0x100    END=0x10F    PROTECTED
DATABANK   NAME=sfr3     START=0x180    END=0x18F    PROTECTED

SHAREBANK   NAME=gprnobnk0     START=0x20     END=0x6F
SHAREBANK   NAME=gprnobnk0     START=0x120    END=0x16F   PROTECTED

SHAREBANK   NAME=gprnobnk1     START=0xA0     END=0xB4
SHAREBANK   NAME=dbgspr1       START=0xB5     END=0xBF    PROTECTED
SHAREBANK   NAME=gprnobnk1     START=0x1A0    END=0x1B4   PROTECTED
SHAREBANK   NAME=dbgspr1       START=0x1B5    END=0x1BF   PROTECTED

SHAREBANK  NAME=dbgspr2   START=0x70     END=0x70      PROTECTED
SHAREBANK  NAME=gprnobnk2 START=0x71     END=0x7F
SHAREBANK  NAME=dbgspr2   START=0xF0     END=0xF0      PROTECTED
SHAREBANK  NAME=gprnobnk2 START=0xF1     END=0xFF      PROTECTED
SHAREBANK  NAME=dbgspr2   START=0x170    END=0x170     PROTECTED
SHAREBANK  NAME=gprnobnk2 START=0x171    END=0x17F     PROTECTED
SHAREBANK  NAME=dbgspr2   START=0x1F0    END=0x1F0     PROTECTED
SHAREBANK  NAME=gprnobnk2 START=0x1F1    END=0x1FF     PROTECTED

SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
SECTION    NAME=IDLOCS   ROM=.idlocs    // ID locations
SECTION    NAME=DEEPROM  ROM=eedata     // Data EEPROM
Any program which runs right is obsolete.
Avatar do usuário
rafael.wachter
Nibble
 
Mensagens: 89
Registrado em: 19 Nov 2008 13:12
Localização: no RS tchê

Mensagempor rafael.wachter » 01 Set 2010 11:12

Resolvido,
Dando uma lida no User's Guide do ICD2, tem uma notação lah no item Step mode execution que diz o seguinte:

While single stepping, the MPLAB ICD2 will not respond to interrupts.


Mas vlw pela ajuda Sergio38br :lol:
Any program which runs right is obsolete.
Avatar do usuário
rafael.wachter
Nibble
 
Mensagens: 89
Registrado em: 19 Nov 2008 13:12
Localização: no RS tchê


Voltar para PIC

Quem está online

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

cron

x