Autor Tema: Reduccion de codigo matriz 7x5  (Leído 1861 veces)

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

Desconectado johndavid

  • PIC10
  • *
  • Mensajes: 3
Reduccion de codigo matriz 7x5
« en: 19 de Marzo de 2008, 20:50:53 »
Hola, necesito su ayuda para simplificar este programa que controla una matriz de 7x5, Este programa solo manda la palabra HOLA en dos partes HO en a[] de 0 a 4 y de 5 a 9 LA, para cada bloque de mensaje uso un "for" ya intenté anidando los for pero no me funciona... los datos para las lineas las mando por PTCD y las columnas las controlo con PTB1 a 4 y PTD1 uso multiplexion en un HC08 en CodeWarrior.

codigo:

#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */

char a[10]={0xAD,0xAA,0x8A,0xAA,0xAD,0xBD,0xBA,0xB8,0xBA,0x8A};
char *x;
int i,j,k,l,m,n,o,p,q;



void delay(void){
 
  for(m=0;m<800;m++){
   
   __RESET_WATCHDOG();
  }
}

void delays(void){
 
  for(n=0;n<32000;n++){
   
   __RESET_WATCHDOG();
  }
}

void MCU_init(void); /* Device initialization function declaration */

void main(void) {
  MCU_init(); /* call Device Initialization */

  /* include your code here */
PTCDD=0xFF;
PTBDD=0XFF;
PTDDD_PTDDD1=1;
SOPT1=0x23;


 
for(;;){


for(k=0;k<2;k++){   
  for(o=0;o<35;o++){
       
        PTBD_PTBD4=1;
        PTCD=a[0];
        delay() ;
        PTBD_PTBD4=0;
         
     
        PTBD_PTBD3=1;
        PTCD=a[1];
        delay();
        PTBD_PTBD3=0;
       
        PTBD_PTBD2=1;
        PTCD=a[2];
        delay();
        PTBD_PTBD2=0;
     
        PTBD_PTBD1=1;
        PTCD=a[3];
        delay();
        PTBD_PTBD1=0;
   
        PTDD_PTDD1=1;
        PTCD=a[4];
        delay();
        PTDD_PTDD1=0;

  }
       delays();
       
 
   for(k=0;k<35;k++){
       
        PTBD_PTBD4=1;
        PTCD=a[5];
        delay() ;
        PTBD_PTBD4=0;
         
     
        PTBD_PTBD3=1;
        PTCD=a[6];
        delay();
        PTBD_PTBD3=0;
       
        PTBD_PTBD2=1;
        PTCD=a[7];
        delay();
        PTBD_PTBD2=0;
     
        PTBD_PTBD1=1;
        PTCD=a[8];
        delay();
        PTBD_PTBD1=0;
   
        PTDD_PTDD1=1;
        PTCD=a[9];
        delay();
        PTDD_PTDD1=0;
       
   }
   delays();
   delays();
   delays();
       
        }

     


}