Página 1 de 1

estou com problemas na simulacao

MensagemEnviado: 26 Set 2011 08:04
por vanessa
Estou tentando fazer este programa rodar no proteus mas sempre aparece o erro "mpasmwin.exe reported error code (1L).

daí eu vou no mplab e faço um projeto usando o arquivo lkr, e o mplab faz tudo ok (build sucessfull),

ai eu tento usar o .hex que o mplab gerou e apesar de o proteus nao dar mensagem de erro ele tambem nao faz funcionar a simulacao.

ja gastei mais de 36 horas tentando resolver isso.

Ja ouvi dizer que o problema seria com a palavra de configuracao, que no mplab a palavra de configuracao nao precisa estar certinha, mas que no proteus ela precisava estar bem correta, sera que tem a ver?

que modificacoes eu teria que fazer neste .asm que postei abaixo para nao precisar usar o arquivo .lkr?

qualquer ajuda fico muito agradecida



;************************************************************************
; *
; Filename: MA_L1-Flash_LED-50p-inline.asm *
; Date: 1/7/08 *
; File Version: 1.0 *
; *
; Author: David Meiklejohn *
; Company: Gooligum Electronics *
; *
;************************************************************************
; *
; Architecture: Midrange PIC *
; Processor: 12F629 *
; *
;************************************************************************
; *
; Files required: none *
; *
;************************************************************************
; *
; Description: Lesson 1, example 2 *
; *
; Flashes an LED at approx 1 Hz. *
; LED continues to flash until power is removed. *
; *
; Uses inline 500 ms delay routine *
; *
;************************************************************************
; *
; Pin assignments: *
; GP1 - indicator LED *
; *
;************************************************************************

list p=12F675
#include <p12F675.inc>

errorlevel -302 ; no warnings about registers not in bank 0


;***** CONFIGURATION
; ext reset, no code or data protect, no brownout detect,
; no watchdog, power-up timer, 4Mhz int clock
__CONFIG _MCLRE_ON & _CP_OFF & _CPD_OFF & _BODEN_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT


;***** VARIABLE DEFINITIONS
UDATA_SHR
sGPIO res 1 ; shadow copy of GPIO
dc1 res 1 ; delay loop counters
dc2 res 1


;**********************************************************************
RESET CODE 0x0000 ; processor reset vector
; calibrate internal RC oscillator
call 0x03FF ; retrieve factory calibration value
banksel OSCCAL ; then update OSCCAL
movwf OSCCAL

; initialisation
movlw ~(1<<GP1) ; configure GP1 (only) as an output
banksel TRISIO
movwf TRISIO

clrf sGPIO ; start with shadow GPIO zeroed

;***** Main loop
flash ; toggle LED
movf sGPIO,w ; get shadow copy of GPIO
xorlw 1<<GP1 ; flip bit corresponding to GP1
banksel GPIO ; write to GPIO
movwf GPIO
movwf sGPIO ; and update shadow copy

; delay 500ms
movlw .244 ; outer loop: 244 x (1023 + 1023 + 3) + 2
movwf dc2 ; = 499,958 cycles
clrf dc1 ; inner loop: 256 x 4 - 1
dly1 nop ; inner loop 1 = 1023 cycles
decfsz dc1,f
goto dly1
dly2 nop ; inner loop 2 = 1023 cycles
decfsz dc1,f
goto dly2
decfsz dc2,f
goto dly1

goto flash ; repeat forever


END

MensagemEnviado: 26 Set 2011 10:34
por ze
hummm pisca led. uma nobre aplicação pro pic.
-a configuração dos fusíveis já vai junto com o .hex. portanto é a mesma do mplab
-Voce pode carregar o .cof no proteus assim tem como debugar melhor.
-voce pode debugar no mplab mesmo. É pra ver qual dos 2 (ou dos 3) está fazendo cagada. Antes de enviar pro proteus use a função View Simulator Logic Analizer e visualize o pino do led
-Ve se dorme um pouco hein.
bj

MensagemEnviado: 26 Set 2011 10:51
por proex
Tem uma instrução ai nesse programa que é incompatível com o MPLAB e o PROTEUS.

Veja: movlw ~(1<<GP1) ;

O MPLAB e o PROTEUS nao reconhecem esse tipo de montagem de instrução.

No meu MPLAB, isso gera erro. No seu não?....tem certeza?

.

MensagemEnviado: 26 Set 2011 12:17
por vanessa
certeza absoluta. estou usando o mplab v7.31e o isis 7.6 spo.

MensagemEnviado: 26 Set 2011 19:32
por MOR_AL
Bons projetos.
MOR_AL

MensagemEnviado: 27 Set 2011 18:28
por vanessa
Consegui achar o problema
Foi tentando verificar o que o Proex disse, acabei tropecando na solucao.
Era uma coisa muito simples, eu estava crente que se eu substituisse os arquivos .asm, (modificasse eles e salvasse) o mplab automaticamente atualizaria o .hex do processador, mas isso nao acontece. Ou seja voce pode configurar a vontade o proteus para usar o seu .asm, mas ele nao atualiza o .hex correspondente. agora eu estou fazendo o building all no mpalb e ATUALIZANDO (clicando com o botao direito sobre o processador no isis) o .HEX
Perdi muito tempo mas, com certeza, valeu a pena.
Obrigado a todos pela ajuda.

MensagemEnviado: 27 Set 2011 18:58
por proex
Mesmo assim, aquela instrução esquisita continua dando mensagem de erro no meu MPLAB.


.

MensagemEnviado: 27 Set 2011 19:52
por vtrx
movlw ~(1<<GP1) ;

Esta expressão equivale a setar GP1 como saída(NOT em 1 no GP1).
Aqui rodou...
Para setar como entrada,movlw 1<<GP1.