Introduccion a la programacion de PICS en lenguaje C (CCS)

Iniciado por MARCO_RECARGADO, 26 Julio 2007, 17:47 PM

0 Miembros y 3 Visitantes están viendo este tema.

EL Malicioso

Hola Marcos Recargado,  estoy estudiando tus post, pero en el ejemplo de 2 displays de 7 segmentos, no entiendo como es la lògica.
No puedo ver el Proteus pero ¿como se hace el multiplexado de los displays. Sino, como se haria con CSS? ¿estas usando un conversor de binario a bcd no? no puedo seguir el pedazo de codigo donde suma 10 a count.
Cualquier dato que puedas darme de seguro q me va a ayudar enormemente
Graicas por el aguante!!

MARCO_RECARGADO

Perdon por este enorme receso pero no habia podido entrar al foro, porque mi computadora se me habia quemado y por tanto no podia grabar mis pics y bla bla bla.
Citar1-asignas la dccion del puerto B a tu gusto? o es la dccion qeu la datasheet del pic establece para este modelo?
La direccion del puertoB ya esta dada por la misma arquitectura del micro puedes abrir la el archivo donde se encuentra la libreria del 16f877.h la ruta generalmente es esta
C:\Archivos de programa\PICC\Devices ahi veras que el mismo programa ya tiene definidos el nombre de los parametros del pic.

y la instruccion
Citar#byte PORTB = 6              //declaramos a la variable PORTB

solo que asocio la variable PORTB a la direccion 0x06

Citar2-el 6  está en decimal o en hexa? (en este caso, si el nro es 6 en decimal, en hexa es lo mismo, pero quiero ver si la sintaxis obliga a poner 0x06 por ejemplo)

el programa lo asocia por default como decimal sin embargo te da la direccion  pero si tu pusieras 54 la direccion a la que te referirias no seria la 0x54 sino a 0x36

Citar3-eso ya no està definido cuando pones #include<16F84>  ?

En efecto tienes razon cuando se pone la libreria ahi ya tienes definido varios parametros, pero no con el mismo nombre que yo les asigno en este caso por ejemplo tiene definido

#define PIN_A0  40
#define PIN_A1  41
#define PIN_A2  42
#define PIN_A3  43
#define PIN_A4  44
#define PIN_A5  45

sin embargo para comodidad mia le pongo variables con los que yo lo relaciono mas inmediatamente

Citar4-para acceder al bit 3 del puertoB deberia acceder a la dccion de memoria  6*8+3=51? o hay alguna manera ya optimizada en el CSS (soy nuevo enel CSS  )

bueno con lo anterior puedes ver que se tiene acceso a un solo bit en especifico y no tienes que declararlo te recomiendo nuevamente leer la libreria y si te gusta de esa forma pues usarlos asi.

por ejemplo para encender el bit 5 del puerto a tendiras que hacer lo sigueinte
PIN_A5=1;


espero haber resuelto tus dudas.
y perdonen nuevamente la demora de mis respuestas las estare contestando en el transcurso de la sigueinte semana
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO


CitarHola Marcos Recargado,  estoy estudiando tus post, pero en el ejemplo de 2 displays de 7 segmentos, no entiendo como es la lògica.
No puedo ver el Proteus pero ¿como se hace el multiplexado de los displays. Sino, como se haria con CSS? ¿estas usando un conversor de binario a bcd no? no puedo seguir el pedazo de codigo donde suma 10 a count


mira los displays van a un decodificador bcd las terminales portb0-portb3 estan a un decodificador y las terminales portb4-portb7 al otro decodificador

vamos viendo paso a paso que se esta haciendo

Citarconteo=conteo+1;
en este segmento obviamente estoy incrementando en uno a la variable contador

Citarif((conteo&0x0f)>9)
en este estoy haciendo una operacion logica AND de la variable conteo con el numero 0x0f ¿y que diablos obtengo de esto? facil que yo seleccione mi parte baja de lo que contiene esta variable es decir si mi variable conteo=0b1111 0101 que es igual a conteo=0xf5 al hacer esta operacion yo tengo como resultado conteo=0x05 es decir anule la parte alta ya una vez hecho esto la compara con si es mayor a 9 si es mayor a 9 significa que estoy en el 10 pero en hexadecimal seria 0x0A y ese no es el valor que quiero sino quiero este 0x10

Citar{  conteo=conteo+10; conteo=conteo&0xf0;  }

por eso a la hora de que es mayor a nuevo yo le sumo 10 para que me de el numero hexadecimal que deseo

if(conteo>99) {conteo=0;}
por ultimo si ya llego a 99 lo reseteo porque recuerda que esta varialbe como fue declarada de tipo int es una variable que puede llegar hasta 255.
Espero haberte ayudado
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

Janmego

Muchas gracias MARCO por tomarte el tiempo para hacer todo esto, estoy comenzando con este tema de los pic y todo esto, y bueno quería aprovechar y hacer una consulta.

Bueno es que tengo que hacer un "contador de energía", el circuito seria una fuente AC en serie con una inductancia y con la respectiva resistencia de carga, hasta ahora lo que se es como tomar los datos de voltaje y corriente (con ADC de la fuente y la inductancia respectivamente) pero el problema esta en hallar el angulo de desfase entre las señales pues como sabemos la ecuación seria V*I*cos(angulo)

Cualquier ayuda que me pudieras ofrecer estaría muy agradecido

Suerte

chundo

Hola! estoy tratando de programar PIC's en C pero ps la vvd no le entiendo muy bien, creo que necesito leer mas, lo que quiero hacer es un lector de codigos infrarojos y asi poder activar algo... mi problema es que no se como hacer el programa para leer frecuencias y diferenciar los 1 y 0 de la misma, si me pueden ayudar se los agradeceria.

Meta

Cita de: MARCO_RECARGADO en 26 Julio 2007, 20:14 PM


PROTEUS 7
http://rapidshare.com/files/41610138/Proteus_VSM_7.1_SP4_FULL_inc_crack.zip.html


Leí que está ya el PROTEUS 7.2 con Service Pack 3. ¿Alguien lo puede conseguir en rapidshare?

Han mejroado rendimiento e incluido nuevos componentes como nuevas funciones.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

MARCO_RECARGADO

De hecho la version que esta es la 7.2 SP5 pero esa no la he podido conseguir hasta ahora la unica que he podido conseguir es la 7.2 SP2 pero tiene algunos problemas porque de la nada se resetea y si no haz guardado tu trabajo es una gran lata, deja checar si ya hay por la web quien la tenga y la subo en la semana hasta pronto
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

epale

hola a todos.. y aprobecho para felicitar a marco_recargado por tan brillante iniciatiba soy nuevo y como quiero colavorar con ustedes les puedo pasar un demo del proteus 7 la nueva version solo mandenme un correo personal yse los envio...... ;D

Meta

#38
Cita de: MARCO_RECARGADO en 15 Enero 2008, 16:25 PM
De hecho la version que esta es la 7.2 SP5 pero esa no la he podido conseguir hasta ahora la unica que he podido conseguir es la 7.2 SP2 pero tiene algunos problemas porque de la nada se resetea y si no haz guardado tu trabajo es una gran lata, deja checar si ya hay por la web quien la tenga y la subo en la semana hasta pronto


Que yo sepa está solo hasta el 7.2 SP3.

http://www.ieeproteus.com/noticias.html
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

MarcoPolo

Hola MARCO_RECARGADO muchas gracias por tus explicaciones! me estan sireviendo para empezar...
Te hago una consulta, de que manera se activa el clock interno del pic 16F877, ya que tengo un programa que simula bien pero en la placa que tengo no anda y estoy desconfiando que sea a causa del cristal, por lo que me sugirieron que lo hiciera probando con el clock interno, para verificar.

Saludos
MarcoPolo