Programas hechos en MPLAB

Podrias pasarme el programa que hiciste asi lo reviso por favor? Funciona la rutina de crear la imagen poniendo solo [1024] en ves de [128][16]? Mande un mail a CCS y me respondieron que se podia crear punteros a constates cambiando el CONST por ROM y que tambien pueden crearse punteros a funciones :D

Muchas gracias!!
https://www.forosdeelectronica.com/f24/programas-hechos-c18-compiler-38812/

en la ultima parte..esta el protyecto
 
Pase este tema aqui pues me lo sugirieron.
Espero no violar las normas, pido el favor al moderador; borre este tema
del hilo programas hechos en c18:apreton:

Hola amigo george.manson.69
mira,tengo este programa para contar pulsos por el tmr0, cada vez que interrumpe el tmr1
a 100ms.La cosa es que cuando tomo el valor del registro que uso para leer el tmro
haciendo la conversion siempre pierdo las unidades, el valor lo represento en 4 display 7segmentos
Te agradesco la ayuda.Un saludo.
Mira la rutina para tomar y pasar los datos.


m=((val)/1000);
c=((val-m*1000)/100);
d=((val-c*100-m*1000)/10);
u=val-d*10-c*100-m*1000;

output_high(PIN_A3);//millares
output_b(disp[m]);
delay_ms(3);//(15);
output_low(PIN_A3);
delay_us(3);


output_high(PIN_A2);//centena
output_b(disp[c]);
delay_ms(3);//(15);
output_low(PIN_A2);
delay_us(3);

output_high(PIN_A1);//decena
output_b(disp[d]);
delay_ms(3);//(15);
output_low(PIN_A1);
delay_us(3);

output_high(PIN_A0);//unidad
output_b(disp);
delay_ms(3);//(15);
output_low(PIN_A0);
delay_us(3);

} while (TRUE);
}
 
Buenas tardes, me parece muy interesante este hilo que se ha formado.
Uso el dsPIC30F4012, y necesito leer la frecuencia de una onda cuadrada, desde 0 a 30KHz

Puedo conectar la entrada a la pata del dsPIC que yo quiera, concretamente le tengo conectado al RE0.

Me podeis pasar un ejemplo para hacer esto, no encuentro nada claro, solo versiones muy antiguas y me imagino que los dsPICs tengas alguna aplicación mejor que los PIC antiguos.


Me he decantado por usar un pin denominado IC1 (input capture 1) y con un timer, a ver si me sale

Un saludo y gracias
 
Última edición:
Hola soy nuevo en el foro y con esto de los PIC, pero me interesa mucho. Queria felicitarlos a todos por la cantidad de info que se encuentra en el foro. Y pedirle a "george.manson.69" si podria subir de vuelta el SANDWOROT ya que el link http://www.easy-share.com/1909992253/SANDWOROT.pdf esta muerto.

bueno desde ya muchas gracias, saludos.
Martin
Hola mabrojo, claro que subire de nuevo el Robot SANDWOROT. Apartr de mañana lo subire!
Saludos!
 
para hacer un pwm con pic16f877A de 200hz pero sin usar el modulo ccp1 con los puros timers q comience en %40 y amentarlo y disminuirlo con 2 botones en el puerto B solamente

[/QUOTE]

QUOTE=george.manson.69;176611]Este programa es hecho en C#y controla un servo, aqui les dejo el programa hecho en mplab para poder resivir los datos del programa y asi mismo controlar el servo.

Código:
///////////////////////////////////////
//AUTOR:JORGE ARTURO RODRIGUEZ HERNANDEZ
//TITLE;CONTROL DE SERVO
//DATE:26/JUNIO/'09
///////////////////////////////////////

//CONFIGURACION///////////////////
#include<16F628A.h>
#include<math.h>
#fuses HS,NOWDT,NOLVP,MCLR,NOPROTECT
#use delay(clock=20000000)
#use rs232(baud=2400,xmit=PIN_A0,rcv=PIN_A1)

void config(void){
		set_tris_a(0x22);
		set_tris_b(0x00);
		setup_comparator(NC_NC_NC_NC);
}

void main(void){
		int x;
		float y;
		long z;
		config();
		output_b(0x00);
	do{

		x=getch();
		y=(x*6.666e-6)+0.9e-3;
		z=y*1000000;
		output_high(PIN_B0);
		delay_us(z);
		output_low(PIN_B0);
		delay_us(20000-z);
	}while(TRUE);
}
[/QUOTE]
 
Pos te lo está diciendo "La instrucción TRISB es desaprobada para el 16F628".

Desde hace un par de siglos ;) Microchip viene desaconsejando la instrucción TRIS, pero por misterios de la industria, se la sigue incluyendo en el código (n).

Durante cada lectura del teclado se cambia la configuración del puerto, como en esto usa la instrucción TRIS por eso te saltan los trillones de warnings.

Solución:
- Desde el CCS, ir a Tools->Device Editor->PIC16F628A->Other Features y poner TRIS=False
==> El código generado ya no incluirá TRIS y funcará como los dioses.

- Enviar un email a CCS preguntando por qué mie*** tiene esa configuración por defecto ;)
Yo hice eso de editar el dispositvo pero me sigue marcando esa advertencia en proteus. No se que sea. Seguire intentando y vere los resultados.
 
Bueno, obvio no me quede de brazos cruzados. He creado otra libreria para manejar el teclado matricial. Cuando le ajuste los ultimos detalles la subo para que entre todos le hagamos modificaciones. Es para trabajar con el puerto a de un pic16f628a por ahora...
 
este circuito lo que haces es por medio de la computadora tenemos un programa llamado hercules que hace la comunicacion serial con el pic, bueno por medio de este programa introducimos un password en este caso es "hola", si es asi prendera un led indicando que se activo algo, y si ponemos otra palabra que no sea "hola" prendera otro led indicando que esta mal el password.

Código:
///////////////////////////////////////
//AUTOR:JORGE ARTURO RODRIGUEZ HERNANDEZ
//TITLE;PASSWORD
//DATE:25/ABRIL/2009
///////////////////////////////////////

//CONFIGURACION///////////////////
#include<16F628A.h>
#include <STRING.H>
#fuses INTRC_IO,NOWDT,NOLVP,MCLR,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=2400,xmit=PIN_B6,rcv=PIN_B7)

void main(void){
		char password[6];
		char numero[]="hola";
		set_tris_b(0x80);
		setup_comparator(NC_NC_NC_NC);

		printf("ESCRIBA EL PASSWORD PORFAVOR: \r");
		while(TRUE){
			printf("PASSWORD: %S\n ",gets(password));
			if (!strcmp(password,numero)){
				printf("BIEN \r");
				output_high(PIN_B0);
				output_low(PIN_B1);
			}
			else{
				printf("MAL \r");
				output_low(PIN_B0);
				output_high(PIN_B1);
			}
		}
}
bueno tengo un programa llamado configure virtual serial port es bueno para simular puertos seriales y ya podras conectadorlo con proteus con el compim que se encuentra en las librerias.


HOLA MANSON interesante el programa pero como recien estoy empezando esto de programar PIC sólo se programar el 16f628a pero en assembler eso con sus 30 y pico instrucciones osea como paso este programa a lenguaje ensamblador, gracias
 
HOLA MANSON interesante el programa pero como recien estoy empezando esto de programar PIC sólo se programar el 16f628a pero en assembler eso con sus 30 y pico instrucciones osea como paso este programa a lenguaje ensamblador, gracias
Mejor empieza busando informaión sobre lenguaje C para que vayas aprendiendo es muy fáil y te será de gran ayuda aprender a programar en este lenguaje...

saludos
 
Hola a todos
soy un poco nuevo en esto les agradeceria a todos por su ayuda necesito realizar un contador de 0-9 con un pulsador que cuando lo cierre me haga decremento no es mucho pero no he podido realizarlo agrdezo por la ayuda gracias...
 
Hola! Bueno creo q todos tienen excelentes proyectos pero quisiera saber si tiene alguien el codigo para controlar el pic 18f4550 desde el usb y me lo reconosca el software de jvm servo es q por q no tenia para comprar la placa yo hice mi propio circuito y placa pero necesito el archivo hex para q me la reconosca la compu y poder controlar los servos en tiempo real o si alguien me puede ayudar =( bueno es para un brazo robotico
 
Hola amigo george.
Intento incluir este codigo en el ccs pero me da muchos errores
quiero usar el tmr0 pero en asm, ¿que me sugieres?
Un saludo:apreton: ERROR.JPG
 
Hola
no se si puedan ayudarme con un progarama en mplab
q nege
CON UN PIC 16F84
ejemplo:
Pongo 1 me lo cambie a cero

se los agradeceria mucho
grax de antemano
 
Última edición:
Si a lo que te refieres, que al poner un alto en algun pin del port
otro pin de cualquier port cambie a cero, seria algo asi, para RB0>>>RB1

bsf status,rp0; paso al banco 1
MOVLW 0X01
MOVWF PORTB; RB0 es entrada, el resto salidas; (La instruccion tris,es ambigua)
bsf status,rp0; Paso al banco 0
CLRF PORTB; limpio el port
loop
BTFSS PORTB,0 ; Pregunto si rb0 es 1
GOTO ESCERO ; no es 1, salto a ESCERO
BSF PORTB,1; si es 1 rb0, pogo en 1 rb1
goto loop; regreso a loop
ESCERO
BCF PORTB,1; pongo a 0 rb1
goto loop; regreso a loop

Solo tienes que implementar la rutina anti rebote para el pulsador , o hacerlo por hardware
 
Última edición:
Arriba