Autor Tema: En la vida real no funciona  (Leído 3352 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Strongpic

  • PIC10
  • *
  • Mensajes: 16
En la vida real no funciona
« en: 07 de Abril de 2017, 16:21:42 »
Programe en c el efecto para hacer trabajar el puertob del 16f84 para encender un led cada 1 segundo
 
Lo simule en proteus anduvo de diez,  en la programacion real en mi protoboar solo enciende los primeros tres led conetado al puertob de lo 8.
les paso el programa en c
-------------------------------------------
* Author: strong
 *
 * Created on 7 de abril de 2017, 14:36
 */
#include <stdio.h>
#include <stdlib.h>
#include <xc.h> //;libreria de compilador en c
#define _XTAL_FREQ 4000000         //Fosc=4Mhz
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
   ///PROGRAMA

int main() {
   int i ;
   TRISB = 0x00;   //portb como salida(RB0,las demas desactivadas)
   PORTB = 0X00;
   short int       tabla[8] = {
                        0b00000001,      // Numero 0
                        0b00000010,      // Numero 1
                        0b00000100,      // 2
                        0b00001000,      // 3
                        0b00010000,      // 4
                        0b00100000,      // 5
                        0b01000000,      // 6
                        0b10000000,
                        };
        i=0;
           while (i<=7)
         {
         PORTB= tabla ;  con corchetes entre la i no aparece cuando la escribo        //led on
        __delay_ms(1000);
          i=i+1;
         }
   
    return (EXIT_SUCCESS);
  }
-------------------------------------

en la tabla se ve el efecto que quiero obtener en la salida

en que ando mal?
seguire intentando solucionar esto.
« Última modificación: 07 de Abril de 2017, 17:22:07 por Strongpic »

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:En la vida real no funciona
« Respuesta #1 en: 07 de Abril de 2017, 17:12:42 »
Cambia esto:

Código: [Seleccionar]
//PORTB= tabla; //MAL
PORTB= tabla[i]; //BIEN

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Strongpic

  • PIC10
  • *
  • Mensajes: 16
Re:En la vida real no funciona
« Respuesta #2 en: 07 de Abril de 2017, 17:19:34 »
Lo cambie , lo compilo y me dice error
ademas es   "PORTB=tabla;" con corchetes entre la i no aparece cuando la escribo
gracias por su rapida repuesta seguire investigado tablas veo que no lo manejo bien.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:En la vida real no funciona
« Respuesta #3 en: 07 de Abril de 2017, 17:33:28 »
Ya me he dado cuenta, se ve que el editor del foro no lo reconoce. Dale al icono de insertar código y ahí si que lo hace bien. Al final no te he entendido: lo pones con corchetes o no?. Sin corchetes estás copiando la dirección de memoria del puntero, con corchetes el contenido del puntero (que es lo que debería).

qué error te da?

otra cosa: un byte no es short int, es un unsigned char.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Strongpic

  • PIC10
  • *
  • Mensajes: 16
Re:En la vida real no funciona
« Respuesta #4 en: 07 de Abril de 2017, 17:36:03 »
"con corchetes entre la i", procedi a compilar y aun tengo problemas :shock:.
saludos!!

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:En la vida real no funciona
« Respuesta #5 en: 07 de Abril de 2017, 17:37:00 »
Creo que edité mientras contestabas.... te puse 2 preguntas mas...
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:En la vida real no funciona
« Respuesta #6 en: 07 de Abril de 2017, 20:42:59 »
Usualmente el Proteus no tiene en cuenta los FUSES del micro, asi que es eso. Ya que no veo que lo tengas puesto. El MPLAB posee un generador en el que seleccionas con el mouse los FUSES y le das a generar el cual te da el codigo a copiar en el codigo.

la i entre corchetes no aparece por que pertenece al tag del estilo: ITALICA
Código: [Seleccionar]
[i]ITALICA[/i]
Y otra cosa, es que no se si conectaste bien el PIC.

Desconectado Strongpic

  • PIC10
  • *
  • Mensajes: 16
Re:En la vida real no funciona
« Respuesta #7 en: 08 de Abril de 2017, 13:13:33 »
Muchas gracias por la rapida respuesta, tengo la correccion del codigo, pero aun tengo problemas, ahora con el programador :shock:
------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <xc.h> //;libreria de compilador en c

#define _XTAL_FREQ 4000000         //Fosc=4Mhz
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
   ///PROGRAMA
// CONFIG
#pragma config FOSC = XT        // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF       // Watchdog Timer (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (Power-up Timer is disabled)
#pragma config CP = OFF         // Code Protection bit (Code protection disabled)

int main(){
   int i,TRISB,PORTB ;
   unsigned char tabla[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
   TRISB = 0x00;   //portb como salida(RB0,las demas desactivadas)
   PORTB = 0X00;
 
        i=0;
           while (i<=7)
         {
         PORTB= tabla;          //led on
        __delay_ms(1000);
          i=i+1;
         }
     
    return (EXIT_SUCCESS);
  }
-------------------------------------------------------
Agregue el cambio de variable, no comprendia  la diferencia ahora logre trabajar con char, intente hacerlo con string, pero no hubo caso , mplab me acepto la varible char y encontre una guia por el foro, los fuses lo hice para el pic  16f84 .

ahora tengo problema en el programador tengo el TMPROG 2.0

"ERROR DE CODIGO EN 0x0000 leido :0x0000;verificador 0x2BED"

con esto me despido por ahora ya gaste mis energia en este problema, voy por otros, saludos
« Última modificación: 08 de Abril de 2017, 13:16:13 por Strongpic »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:En la vida real no funciona
« Respuesta #8 en: 08 de Abril de 2017, 16:02:31 »
Cuando uno programa un micro puede verificarlo que se programo correctamente, Ese es el paso que te esta dando error.
Ahi dice que en la direccion 0x0000 lee el valor 0x0000 pero deberia estar el valor 0x2BED

Casi siempre es por la proteccion de codigo, pero vos mostras que en tu codigo CP = OFF, por lo tanto no es eso.
Tal ves alguna mala conexión, o posicionado mal el PIC en el programador, o tal ves quemado el PIC.

Revisa que en el programa del programador no posea tildada la opcion de CP ( Proteccion de codigo)

Desconectado Strongpic

  • PIC10
  • *
  • Mensajes: 16
Re:En la vida real no funciona
« Respuesta #9 en: 08 de Abril de 2017, 16:27:11 »
 :shock:
acabo de revisarlo aun tengo ese problema, espero que no sea el pic quemado.....porque tengo dos pic y los dos me dicen el mismo error.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:En la vida real no funciona
« Respuesta #10 en: 08 de Abril de 2017, 17:30:42 »
Lamentablemente no puedo ser de mas ayuda. Como te decia el error es el que podes conseguir ahi debido a que no lee por estar protegido. Pero si esta quemado podria dar errores tambien. Lo raro es que te reconozca el micro.

Intenta leer el micro por simple curiosidad. Deberias tener el programa viejo. Si no lo podes leer entonces seguramente esta muerto.

Desconectado Strongpic

  • PIC10
  • *
  • Mensajes: 16
Re:En la vida real no funciona
« Respuesta #11 en: 08 de Abril de 2017, 17:41:59 »
puedo leer los micros
aparecen las lineas
00000 :00000 00000 00000....
00008  00000  00000  00000.....

todas las lineas con ceros
creo que los deje muertos..... :? :shock:

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:En la vida real no funciona
« Respuesta #12 en: 08 de Abril de 2017, 17:59:30 »
¿lo tienes montado en protoboard? revisa las conexiones. suena raro 3 pics quemados de golpe... ¿lo alimentas con fuente de banco? ¿cuanto consumen?
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:En la vida real no funciona
« Respuesta #13 en: 08 de Abril de 2017, 20:13:00 »
Ademas lo puede leer, para mi no esta quemado.. porque le envia informacion el PIC al programador. Parece ser que quedo grabado con proteccion de codigo por eso lee 0x00. Cuando se me quema directamente no puedo ni pedir que me detecte el micro.

Intenta primero borrarlo y luego leerlo, Si no aparece 0xFFFF imagino que debe ser algun problema de conexion o del programador

Desconectado Strongpic

  • PIC10
  • *
  • Mensajes: 16
Re:En la vida real no funciona
« Respuesta #14 en: 13 de Abril de 2017, 11:19:52 »
creo que el problema es de quedo protegido contra escritura, como usted dice, ahora intente borrar, volver a pasar el codigo maquina, y aun no puedo solucionar el problema.
si existe la manera de borrar la proteccion,yo  no conozco manera.
gracias.


 

anything