Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/01/2013 #1


Reducir codigo pic ccs
Buenas, tengo este codigo:

Código:
   for(j<=0;j<=80;j++){      
   escribir_bit(a[0]);
   output_b(matrix[0]);
   delay_ms(1);}
   j=0;

   for(j<=0;j<=80;j++){
   escribir_bit(a[0]);
   output_b(matrix[1]);  
   escribir_bit(a[1]);
   output_b(matrix[0]);  
   delay_ms(1);}
   j=0;
   
   
   for(j<=0;j<=80;j++){
   escribir_bit(a[0]);
   output_b(matrix[2]);  
   escribir_bit(a[1]);
   output_b(matrix[1]);    
   escribir_bit(a[2]);
   output_b(matrix[0]); 
   delay_ms(1);}
   j=0;


   for(j<=0;j<=80;j++){
   escribir_bit(a[0]);
   output_b(matrix[3]);  
   escribir_bit(a[1]);
   output_b(matrix[2]);    
   escribir_bit(a[2]);
   output_b(matrix[1]);    
   escribir_bit(a[3]);
   output_b(matrix[0]);
   delay_ms(1);}
   j=0;

   for(j<=0;j<=80;j++){
   escribir_bit(a[0]);
   output_b(matrix[4]);  
   escribir_bit(a[1]);
   output_b(matrix[3]);    
   escribir_bit(a[2]);
   output_b(matrix[2]);    
   escribir_bit(a[3]);
   output_b(matrix[1]);
   escribir_bit(a[4]);
   output_b(matrix[0]); 
   delay_ms(1);}
   j=0;   
   
   
   for(j<=0;j<=80;j++){
   escribir_bit(a[0]);
   output_b(matrix[5]);  
   escribir_bit(a[1]);
   output_b(matrix[4]);    
   escribir_bit(a[2]);
   output_b(matrix[3]);    
   escribir_bit(a[3]);
   output_b(matrix[2]);
   escribir_bit(a[4]);
   output_b(matrix[1]);   
   escribir_bit(a[5]);
   output_b(matrix[0]);
   delay_ms(1);}
   j=0;
   
   for(j<=0;j<=80;j++){ 
   escribir_bit(a[0]);
   output_b(matrix[6]);  
   escribir_bit(a[1]);
   output_b(matrix[5]);    
   escribir_bit(a[2]);
   output_b(matrix[4]);    
   escribir_bit(a[3]);
   output_b(matrix[3]);
   escribir_bit(a[4]);
   output_b(matrix[2]);   
   escribir_bit(a[5]);
   output_b(matrix[1]);   
   escribir_bit(a[6]);
   output_b(matrix[0]);
   delay_ms(1);}
   j=0;
   
   
   for(j<=0;j<=80;j++){   
   escribir_bit(a[0]);
   output_b(matrix[7]);  
   escribir_bit(a[1]);
   output_b(matrix[6]);    
   escribir_bit(a[2]);
   output_b(matrix[5]);    
   escribir_bit(a[3]);
   output_b(matrix[4]);
   escribir_bit(a[4]);
   output_b(matrix[3]);   
   escribir_bit(a[5]);
   output_b(matrix[2]);   
   escribir_bit(a[6]);
   output_b(matrix[1]);    
   escribir_bit(a[7]);
   output_b(matrix[0]);
   delay_ms(1);}
   j=0;
   i=0;
asi como está funciona 100% pero me gustaria poder reducirlo, ojala puedan ayudarme... gracias de antemano
21/01/2013 #2


Hola, te aconsejo investigues lo respectivo a funciones, tal vez te pueda ayudar.
21/01/2013 #3

Avatar de Scooter

Me parece que te basta con dos bucles anidados.
21/01/2013 #4


Analizando solo el primer bloque:

Código PHP:
   for(j<=0;j<=80;j++){      
   
escribir_bit(a[0]);
   
output_b(matrix[0]);
   
delay_ms(1);}
   
j=0
En primer lugar la estructura "for" esta mal escrita, debe ser asi:

Código PHP:
for(j=0j<=80j++){    
   
escribir_bit(a[0]);
   
output_b(matrix[0]);
   
delay_ms(1);

por lo que la instruccion j=0; al final esta demas.

En segundo lugar y mas importante, no veo que estes usando la variable j en ningun lado, por lo que toda la estructura "for" seria innecesaria.

Tal vez si explicas que es lo que se supone que debe hacer seria mas facil recomendar algo.

Saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.