TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: soportemyf en 29 de Agosto de 2016, 19:06:42
-
Buenas Gente de foro.
No se si este es el sitio para postear este problema.
de ante mano gracias por la ayudda que me puedan dar.
Tengo un codigo en .asm, que copie de Cekit es para un display de 7 segmentos con el pic 16f84a y una memoria 24LC01, un pulsador para incrementar los digitos y un codificador bcd 74ls48p, la idea es de guardar los datos en ella para cuando se corta la luz.
El tema es que no se si esta bien el código ya que recien estoy empesando con este tipo de programación.
Les dejo el codigo para que lo vean y me oriente si debo corregir algo y como o donde, asi como esta cuando lo quiero compilar en MPLAB tira miles de errores y no entiendo nada.
Desde ya mil gracias de ante mano.
Atilio.
-
2 cosas , deberias probar parte por parte y no TODO junto. Ya que si es como decis que recien estas arrancando, hacer todo junto se vuelve una complicacion. Aun mas usando un PIC16F84, lo complica mucho mas.
Y la ultima:
Les dejo el codigo para que lo vean y me oriente si debo corregir algo y como o donde, asi como esta cuando lo quiero compilar en MPLAB tira miles de errores y no entiendo nada.
Si pones los errores seria mas facil ayudarte.
-
Hola Killerjc:
Gracias por tu respuesta.
Te comento que es un codigo que lo necesito asi completo, entiendo lo que me decis, pero lo necesito asi completo.
Aca te dejo el archivo de error.
Gracias por darme una mano.
Un saludo cordial.
Atilio.
-
Disculpa, pero no tuve demasiado tiempo.
Warning[205] C:\DIS7_SEG_MEM.ASM 1 : Found directive in column 1. (LIST)
Eso es por que esta el LIST sin ningun espacio adelante, lo unico que va desde la primer columna son las instrucciones.
------------------------------------------------------------------
Warning[207] C:\DIS7_SEG_MEM.ASM 7 : Found label after column 1. (status)
Warning[207] C:\DIS7_SEG_MEM.ASM 8 : Found label after column 1. (ptoa)
Warning[207] C:\DIS7_SEG_MEM.ASM 9 : Found label after column 1. (ptob)
Warning[207] C:\DIS7_SEG_MEM.ASM 10 : Found label after column 1. (addr)
Warning[207] C:\DIS7_SEG_MEM.ASM 11 : Found label after column 1. (datao)
Warning[207] C:\DIS7_SEG_MEM.ASM 12 : Found label after column 1. (slave)
Warning[207] C:\DIS7_SEG_MEM.ASM 13 : Found label after column 1. (txbuf)
Warning[207] C:\DIS7_SEG_MEM.ASM 14 : Found label after column 1. (count)
Warning[207] C:\DIS7_SEG_MEM.ASM 15 : Found label after column 1. (eeprom)
Warning[207] C:\DIS7_SEG_MEM.ASM 16 : Found label after column 1. (rxbuf)
Warning[207] C:\SHELL\DIS7_SEG_MEM.ASM 17 : Found label after column 1. (loops)
Warning[207] C:\SHELL\DIS7_SEG_MEM.ASM 18 : Found label after column 1. (loops2)
Warning[207] C:\DIS7_SEG_MEM.ASM 19 : Found label after column 1. (di)
Warning[207] C:\DIS7_SEG_MEM.ASM 20 : Found label after column 1. (do)
Warning[207] C:\DIS7_SEG_MEM.ASM 21 : Found label after column 1. (sdata)
Warning[207] C:\DIS7_SEG_MEM.ASM 22 : Found label after column 1. (sclk)
Warning[207] C:\DIS7_SEG_MEM.ASM 23 : Found label after column 1. (conta)
Warning[207] C:\DIS7_SEG_MEM.ASM 24 : Found label after column 1. (conta2)
Warning[207] C:\DIS7_SEG_MEM.ASM 25 : Found label after column 1. (trisa)
Warning[207] C:\DIS7_SEG_MEM.ASM 26 : Found label after column 1. (trisb)
Warning[207] C:\DIS7_SEG_MEM.ASM 27 : Found label after column 1. (z)
Warning[207] C:\DIS7_SEG_MEM.ASM 28 : Found label after column 1. (w)
Warning[207] C:\DIS7_SEG_MEM.ASM 29 : Found label after column 1. (c)
Warning[207] C:\DIS7_SEG_MEM.ASM 34 : Found label after column 1. (WAIT)
Warning[207] C:\DIS7_SEG_MEM.ASM 35 : Found label after column 1. (top2)
Warning[207] C:\DIS7_SEG_MEM.ASM 37 : Found label after column 1. (top)
Warning[207] C:\DIS7_SEG_MEM.ASM 49 : Found label after column 1. (retardo)
Warning[207] C:\DIS7_SEG_MEM.ASM 54 : Found label after column 1. (BSTART)
Warning[207] C:\DIS7_SEG_MEM.ASM 77 : Found label after column 1. (BSTOP)
Warning[207] C:\DIS7_SEG_MEM.ASM 97 : Found label after column 1. (BITOUT)
Warning[207] C:\DIS7_SEG_MEM.ASM 103 : Found label after column 1. (clkout)
Warning[207] C:\DIS7_SEG_MEM.ASM 113 : Found label after column 1. (BITIN)
Warning[207] C:\DIS7_SEG_MEM.ASM 131 : Found label after column 1. (TX)
Warning[207] C:\DIS7_SEG_MEM.ASM 134 : Found label after column 1. (TXLP)
Warning[207] C:\DIS7_SEG_MEM.ASM 144 : Found label after column 1. (RX)
Warning[207] C:\DIS7_SEG_MEM.ASM 149 : Found label after column 1. (RXLP)
Warning[207] C:\DIS7_SEG_MEM.ASM 159 : Found label after column 1. (LEER)
Warning[207] C:\DIS7_SEG_MEM.ASM 187 : Found label after column 1. (ESCRIB)
Warning[207] C:\DIS7_SEG_MEM.ASM 210 : Found label after column 1. (INICIO)
Warning[207] C:\DIS7_SEG_MEM.ASM 224 : Found label after column 1. (ini2)
Warning[207] C:\DIS7_SEG_MEM.ASM 227 : Found label after column 1. (ciclo)
Warning[207] C:\DIS7_SEG_MEM.ASM 232 : Found label after column 1. (pulsa)
Todo eso es por que pusiste un espacio al frente de la etiqueta
--------------------------------
Message[305] C:\DIS7_SEG_MEM.ASM 43 : Using default destination of 1 (file).
Message[305] C:\DIS7_SEG_MEM.ASM 45 : Using default destination of 1 (file).
Message[305] C:\DIS7_SEG_MEM.ASM 139 : Using default destination of 1 (file).
Message[305] C:\DIS7_SEG_MEM.ASM 153 : Using default destination of 1 (file).
Message[305] C:\DIS7_SEG_MEM.ASM 237 : Using default destination of 1 (file).
Eso es por que muchas instrucciones necesitan saber donde poner los datos, ejemplo en la linea 43 tenes
decfsz loops2 ;pregunta si termino 1 ms
Pero en realidad lo que decrementa lo podes poner en W o en registro, entonces lo correcto seria:
decfsz loops2, F ;pregunta si termino 1 ms
De esa forma le decis que queres ponerlo en el mismo registro al resultado, de por si por default lo pone con F
-----------------------------
Error[108] C:\DIS7_SEG_MEM.ASM 55 : Illegal character ()
Tal ves algo que agregaste pero no esta en tu codigo que pasaste, no hay parentesis
Error[112] C:\DIS7_SEG_MEM.ASM 216 : Missing operator
Error[112] C:\DIS7_SEG_MEM.ASM 78 : Missing operator
Error[112] C:\DIS7_SEG_MEM.ASM 98 : Missing operator
Error[112] C:\DIS7_SEG_MEM.ASM 115 : Missing operator
Creo que es por tu instruccion TRIS, pero no puedo asegurarlo debido a que las lineas no coinciden.
Error[113] C:\DIS7_SEG_MEM.ASM 2 : Symbol not previously defined (_CP_OFF)
Error[113] C:\DIS7_SEG_MEM.ASM 2 : Symbol not previously defined (_WDT_OFF)
Error[113] C:\DIS7_SEG_MEM.ASM 2 : Symbol not previously defined (_LP_OSC)
Error[113] C:\DIS7_SEG_MEM.ASM 55 : Symbol not previously defined (b’00111111)
Error[113] C:\DIS7_SEG_MEM.ASM 78 : Symbol not previously defined (b’00111111)
Error[113] C:\DIS7_SEG_MEM.ASM 98 : Symbol not previously defined (b’00111111)
Error[113] C:\DIS7_SEG_MEM.ASM 115 : Symbol not previously defined (b’01111111)
Error[113] C:\DIS7_SEG_MEM.ASM 206 : Symbol not previously defined (oops)
Error[113] C:\DIS7_SEG_MEM.ASM 216 : Symbol not previously defined (b’10100000)
Aca hay varios errores, algunos FUSES no definidos, tal ves copiaste y pegaste, tenes que fijarte en los .inc
lo de los binarios tenes un error, hay un acento, y tenes que usar una comilla simple ' tanto para abrir como para cerrar b'00001111' o ya no recuerdo si 0b00001111
oops, no esta definido, tal ves intentas guardar algo y no un EQU asignando un registro.
Error[124] C:\DIS7_SEG_MEM.ASM 55 : Illegal argument (expected single character)
Error[124] C:\DIS7_SEG_MEM.ASM 78 : Illegal argument (expected single character)
Error[124] C:\DIS7_SEG_MEM.ASM 98 : Illegal argument (expected single character)
Error[124] C:\DIS7_SEG_MEM.ASM 115 : Illegal argument (expected single character)
Error[124] C:\DIS7_SEG_MEM.ASM 216 : Illegal argument (expected single character)
Lamentablemente el codigo no tiene las mismas lineas.
Warning[209] C:\DIS7_SEG_MEM.ASM 55 : Missing quote
Warning[209] C:\DIS7_SEG_MEM.ASM 78 : Missing quote
Warning[209] C:\DIS7_SEG_MEM.ASM 98 : Missing quote
Warning[209] C:\DIS7_SEG_MEM.ASM 115 : Missing quote
Warning[209] C:\DIS7_SEG_MEM.ASM 216 : Missing quote
Igual con esto, tal ves es de los b'00000000
Warning[224] C:\DIS7_SEG_MEM.ASM 56 : Use of this instruction is not recommended.
Warning[224] C:\DIS7_SEG_MEM.ASM 79 : Use of this instruction is not recommended.
Warning[224] C:\DIS7_SEG_MEM.ASM 99 : Use of this instruction is not recommended.
Warning[224] C:\DIS7_SEG_MEM.ASM 116 : Use of this instruction is not recommended.
Tal ves estos realmente lo de los TRIS.
Message[302] C:\DIS7_SEG_MEM.ASM 212 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\DIS7_SEG_MEM.ASM 214 : Register in operand not in bank 0. Ensure that bank bits are correct.
Esto es una aviso en el sentido que deberias tener ojo. ya que lo que intentas modificar no esta en el banco 0.
-
ups
-
ufff amigo que lindo lio me meti jaja
No hay problema tu tiempo es mas valioso asi que no te disculpes no hay necesidad, yo solo estoy tratando de hacer algo y aprender me cuesta un montos poder aprender esto ufff, dicen que es muy sencillo pero nada que ver lo veo bien complicado, justo encontre ese pdf de Cekit que habla de todo esto e incluye los codigo y me tire a la pileta, ayer me imprimi el pdf y me puse en MPLAB a copiar todo el codigo tranquilo y sin apuro y prestando mucha atencion a cada palabra pero con resultados negativos, por ej., en los lugares que me daba error (supongo yo) era en ptob o en ptoa, y mirando ej., veo que ponen portb o porta asi que trate de corregir eso, pero nada, lo que no entiendo mucho es lo de los espacios, se que son 4 columnas y trato de hacerlo talcual lo veo en el código original pero no se la cantidad de espacios que lleva cada cosa o si es por un tema de proligidad para poder leer mas comodo el código.
si es de tu interez te dejo el link de donde saque el código:
www.utp.edu.co/~eduque/arquitec/Proye84.pdf
bueno voy a ver cada cosa que me explicastes de los errores y ver que sale de todo esto, a golpes voy a tener que aprender jaja.
Mil gracias por tu tiempo, es muy importante lo que me has explicado asi que seguire adelante con esto ya que quiero hacer este proyecto y vere que curnos hago o como jaja.
Gracias.
Un cordial saludo.
Atilio.
-
Amigo KILLERJC:
Ufff pero salio funcionando :-/ :-/ :-/ :-/ :-/
tome todos tus consejo, me copie todo elcódigo del PDF a un bloc de notas, lo deje talcual lo copie solo cambie la extención por .asm, y lo abri con el MPLAB, quite todos los espacios y lo acomode talcual esta en el PDF, 2 tab para la columna 2 1 tab para la 3 y lo que estaba a la izquierda ahi quedo, cambie B´00111111' por B'00111111' y compile.
Bien solo unas adbertencias que no se que son y te adjunto el archivo pero funciono, ahora solo me queda grabar el pic y ver si realmente quedo bien.
Gracias, gracias, y mil gracias.
no se si aprendi pero que lo logre compilar seguro.
Gracias por tu tiempo y luego te cuento si anda en protoboard.
Un cordial saludo.
Atilio.
-
Amigo Killerjc
Te cuento que grabe el pic monte el protoboard y funciona perfectos guarda en la memoria y demas.
al fin una jajaja :-/ :-/ :-/ :-/ :D :D :D :D
Gracias nuevamente por tu aporte me vino al pelo y gracias a eso pude ver los errores, mil gracias.
Un cordial saludo.
Atilio.
-
te faltaba leer los errores :P
-
los lei pero no los entendi, con lo que me explicastes ahi recien le case la onda jaja.
Gracias nuevamente.
Un cordial saludo.
Atilio.
-
Amigo Killerjc:
Te hago una consulta:
Estuve viendo el codigo pero mirando otros código como ej., en esta que tengo no encuentro en que parte modificar para que el digito 9 en vez de salir como sale 5 segmentos que salga con 6 segmentos es decir con la parte horizontal de abajo = 10010000, en otros códigos vi esto: retlw b'10010000', pero en el cógo que yo tengo no hay nada de esto como para poder modificarlo, te lo consulta ya no se si es posible modificarlo y si es si en donde y que se debe poner.
Espero se entienda mi consulta
saludos
Atilio
-
Si hiciste el diagrama que esta en el PDF, o usaste un CD4511 entonces no vas a poder cambiar el valor de salida, ya que el integrado que tenes al 9 lo hace de esa forma, si quisieras controlar exactamente cada uno de los segmentos necesitarias unas 7 salidas, en ves de 4.
-
a ok amigo
si es el diagrama del PDF pero use el deco 74ls48, bien tendria que ser ese tipo de 9 con la patita de abajo pero no me quiero meter en camisa de 11 varas, ya que no estoy canchenro con esto, si les gusta asi bien y si no tambien jajaja.
Gracias mil
Atilio.-