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();
}
}