Autor Tema: Implemente un vector para hacer efecto con 8 led, y tengo unas preguntas  (Leído 1890 veces)

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

Desconectado cicloide2

  • PIC18
  • ****
  • Mensajes: 359
Hola implemente por primera vez un vector, para realizar efectos con LED's en el portB, de un MC9S08QG8CPE, y pense que podria colmar la memoria de datos con las secuencias que se me ocurrieran, en fin no, se si lo estoy implementando mal o es que colme efectivamente la memoria del micro, alguien puede decirme si esto es así o como puedo darme cuenta si la memoria se lleno  con la cantidad de datos que le cargue al micro, es decir donde puedo fijarme en dentro del CW, si la memoria se lleno o no.

Les dejo el codigo tal cual lo estoy corriendo:

Código: C
  1. #include <hidef.h>
  2. #include "derivative.h"
  3.  
  4.  
  5. void Tiempo1(void);
  6.  
  7. char vector1[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,
  8.                0x80,
  9.                0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,
  10.                0x80,                                         //efecto 1
  11.                0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,
  12.                0x80,
  13.                0x81,0x82,0x84,0x88,0x90,0xA0,0xC0,
  14.                0xC1,0xC2,0xC4,0xC8,0xD0,0xE0,0xE1,0xE2,
  15.                0xE4,0xE8,0xF0,0xF1,0xF2,0xF4,0xF8,0xF9,
  16.                0xFA,0xFC,0xFD,0xFE,0xFF,
  17.  
  18.                
  19.                0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,
  20.                0x01,
  21.                0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,
  22.                0x01,
  23.                0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,      //efecto 2
  24.                0x01,
  25.                0x81,0x41,0x21,0x11,0x09,0x05,0x03,
  26.                0x83,0x43,0x23,0x13,0x0B,0x07,0x87,0x47,
  27.                0x27,0x17,0x0F,0x8F,0x4F,0x2F,0x1F,0x9F,
  28.                0x5F,0x3F,0xBF,0x7F,0xFF,
  29.                
  30.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  31.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  32.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  33.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,      //efecto 3
  34.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  35.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  36.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  37.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  38.              
  39.  
  40.  
  41.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  42.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  43.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  44.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,       //efecto 4
  45.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  46.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  47.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  48.                0xC3,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
  49.  
  50.                0x80,0xC0,0x60,0x30,0x18,0x0C,0x03,0x00,
  51.                0x00,0x03,0x0C,0x18,0x30,0x60,0xC0,0x80,
  52.                0x80,0xC0,0x60,0x30,0x18,0x0C,0x03,0x00,       //efecto 5
  53.                0x00,0x03,0x0C,0x18,0x30,0x60,0xC0,0x80,
  54.                0x00,0x03,0x0C,0x18,0x30,0x60,0xC0,0x80,
  55.                
  56.                                                               //efecto 6
  57.                0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
  58.                0x81,0x81,  
  59.  
  60.  
  61.  };              
  62. void main(void) {
  63.  
  64.   SOPT1 = 0x02;               // anula el watch dog                        
  65.   PTBDD =0xFF;
  66.   EnableInterrupts;
  67.  
  68.   for(;;) {
  69.      
  70.                                      
  71.   char j;
  72.   for(j=0;j<=279;j++){
  73.  
  74.   PTBD= vector1[j];
  75.   Tiempo1();
  76.  
  77.   }
  78.  
  79.  }  
  80.  
  81. }  
  82.  
  83. //==============================
  84. void Tiempo1(void){
  85. int i;
  86.  
  87.     for(i=0; i<10000; i++);
  88. }

Salu2.

Desconectado cicloide2

  • PIC18
  • ****
  • Mensajes: 359
Re: Implemente un vector para hacer efecto con 8 led, y tengo unas preguntas
« Respuesta #1 en: 18 de Agosto de 2014, 00:44:53 »
Bueno muchachos un craneo con patas llamado Jorge Dios de bairesroboticquisas lo conozcan ), resolvio mi inconveniente, y ahora no tengo limites (mas que los de CW y la capacidad de la Flash del micro ) para cargar efectos led, en el código que publique el único cambio que él hizo fué, en la linea:

char vector1[]

agregar la palabrea "const"

es decir quedaría as:

const char vector1[].....

El resto queda igual , lo que permite esa modificación es que todos las constantes se van cargando en la flash cosa que no ocurría antes al llegar a los 270 efectos se saturaba la memoria pero la ram.

En fin espero que le sirva a alguien mas que intente lo mismo .

Saludos ;-), GRACIAS JORGE NO SE SI PARTICIPAS DE ÉSTE FORO CON ALGÚN NICK EN PARTICULAR; pero  tu ayuda me enceño algo de lo que no tenia idea, y realmente no tiene precio ((:-))
« Última modificación: 18 de Agosto de 2014, 00:48:34 por cicloide2 »


 

anything