Nuevo en C, duda con mi primer programa.

Hola a todos, estoy iniciandome en la programación en C para pic, vengo del picbasic pero aun asi estoy muy oxidado, en fín a ver si me podeis echar una mano.
Se trata de hacer que por el puertoB se enciendan 8 led correlativamente, este es el código:

Código:
#include <16F628a.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //Crystal osc <= 4mhz
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#use delay(clock=4000000)
#use fast_io (a)
#use fast_io (b)
int const carrier[10]={0b00000000,0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b00100000,0b01000000,0b10000000,0b11111111}
main(){
set_tris_b(0);
int salida=0;
output_b(0);
for( ; ; ){
for (salida=0;salida=9;salida++){
output_b(carrier[salida]);
delay_ms(100);
}
}
}
***********************Y como no, estos son los errores que me da el pcw********************
*** Error 36 "carrier_led.c" Line 14(1,5): Expecting a ; or ,
*** Error 43 "carrier_led.c" Line 14(6,7): Expecting a declaration
*** Error 43 "carrier_led.c" Line 14(7,8): Expecting a declaration
*** Error 28 "carrier_led.c" Line 15(12,13): Expecting an identifier
*** Error 43 "carrier_led.c" Line 15(14,15): Expecting a declaration
*** Error 28 "carrier_led.c" Line 17(10,11): Expecting an identifier
*** Error 43 "carrier_led.c" Line 17(12,13): Expecting a declaration
*** Error 43 "carrier_led.c" Line 18(1,4): Expecting a declaration
*** Error 43 "carrier_led.c" Line 18(4,5): Expecting a declaration
*** Error 43 "carrier_led.c" Line 18(6,7): Expecting a declaration
*** Error 43 "carrier_led.c" Line 18(8,9): Expecting a declaration
*** Error 43 "carrier_led.c" Line 18(10,11): Expecting a declaration
*** Error 43 "carrier_led.c" Line 18(11,12): Expecting a declaration
*** Error 43 "carrier_led.c" Line 19(1,4): Expecting a declaration
*** Error 43 "carrier_led.c" Line 19(5,6): Expecting a declaration
*** Error 48 "carrier_led.c" Line 19(6,12): Expecting a (
*** Error 43 "carrier_led.c" Line 19(13,14): Expecting a declaration
*** Error 43 "carrier_led.c" Line 19(14,15): Expecting a declaration
*** Error 48 "carrier_led.c" Line 19(15,21): Expecting a (
*** Error 43 "carrier_led.c" Line 19(22,23): Expecting a declaration
*** Error 43 "carrier_led.c" Line 19(23,24): Expecting a declaration
*** Error 48 "carrier_led.c" Line 19(24,30): Expecting a (
*** Error 43 "carrier_led.c" Line 19(32,33): Expecting a declaration
*** Error 43 "carrier_led.c" Line 19(33,34): Expecting a declaration
*** Error 27 "carrier_led.c" Line 20(24,25): Expression must evaluate to a constant
*** Error 43 "carrier_led.c" Line 20(25,26): Expecting a declaration
*** Error 43 "carrier_led.c" Line 20(26,27): Expecting a declaration
*** Error 28 "carrier_led.c" Line 21(10,13): Expecting an identifier
*** Error 43 "carrier_led.c" Line 21(14,15): Expecting a declaration
*** Error 43 "carrier_led.c" Line 22(1,2): Expecting a declaration
*** Error 43 "carrier_led.c" Line 23(1,2): Expecting a declaration
*** Error 43 "carrier_led.c" Line 24(1,2): Expecting a declaration
32 Errors, 0 Warnings.
 
Hola, tal y como te dice el compilador, en la línea 14 te falta un punto y coma (;) al final de la línea. Los demás errores creo que son consecuencia directa de éste. Pruébalo y comenta que tal.

Te aconsejo que les des un poco más de claridad a los programas que escribas, sobre todo en cuanto a tabulaciones y espacios entre distintos bloques, ya que de esta forma es más fácil corregirlos y entenderlos, más aún cuando el programa sea mucho mas grande que éste.

Un saludo.
 
Hola, te he corregido el programa. Además del fallo del punto y coma, el otro fallo que tenías es que no definías la variable "salida" al principio del programa, sino en medio, después de una instrucción.

Código:
#include <16F628a.h> 

#FUSES NOWDT //No Watch Dog Timer 
#FUSES XT //Crystal osc <= 4mhz 
#FUSES NOPUT //No Power Up Timer 
#FUSES NOPROTECT //Code not protected from reading 
#FUSES BROWNOUT //Reset when brownout detected 
#FUSES MCLR //Master Clear pin enabled 
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O 
#FUSES NOCPD //No EE protection 

#use delay(clock=4000000) 
#use fast_io (a) 
#use fast_io (b) 

int const carrier[10]={0b00000000,0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b00100000,0b01000000,0b10000000,0b11111111};

main()
{ 
	int salida=0; 

	set_tris_b(0); 
	output_b(0); 

	for( ; ; )
		{ 
		for (salida=0;salida=9;salida++)
			{ 
			output_b(carrier[salida]); 
			delay_ms(100); 
			} 
		} 
}

Un saludo.
 
Muchas gracias, ahora no me da errores el compilador, ya voy tomandole el truquillo al asunto, ahora a darle vueltas al programa y a ver como trabaja.


Gracias....
 
hola, yo tambien soy nuevo en C alguien me podria ayudar con el siguiente programa, es muy similar al que esta arriba aqui se los dejo.
me marca como 30 errores pero no se como corregirlos
 

Adjuntos

  • picc.rar
    1.1 KB · Visitas: 54
Arriba