Hola!
Hace poco que he empezado con la programacion de los PIC en C...
C ya lo he visto antes, pero para ordenador, asi que no me resulta muy dificil llegar a entender el codigo...lo que no me acabo de enterar es la configuracion para el PIC, es decir, dependiendo las funciones, no me acabo de aclarar que es lo que hace cada una...
Quiero hacer un programa que mueva un motor por medio del PWM del PIC16F877, ya he empezado hacerlo, pero hay cosas que no entiendo. El compilador que utilizo es el PIC-C Compiler, pero me da error en acda una de las lineas del programa...
Aqui os pongo lo que llevo hasta ahora, seguro que los fallos son por cosas básicas, pero lo estoy aprendiendo por mi cuenta y resulta un poco lioso...
Segun he entendido (seguramente estare equivocado)
La funcion SETUP_TIMER_2() establece el ciclo de trabajo que envia el PWM. Los valores que he puesto no los acabo de entender...(les he puesto mas o menos a voleo para ver si funcionaba o no)
T2_DIV_BY_16 quiere decir que divide la frecuencia del reloj por 16?
El 255 indica el valor al que llegara el timer y reiniciara la cuenta?
El 15, mas o menos lo tengo claro, es el numero de resets antes de una interrupcion, no?
En la funcion SET_PWM1_DUTY() se indica el ciclo de trabajo del PWM? y eso no se hace ya con la funcion anterior?
Se que estas cosas son basicas, pero no acavo de enterarme...me podriais hechar una mano?
Muchas gracias a todos!
Un saludo!
Hace poco que he empezado con la programacion de los PIC en C...
C ya lo he visto antes, pero para ordenador, asi que no me resulta muy dificil llegar a entender el codigo...lo que no me acabo de enterar es la configuracion para el PIC, es decir, dependiendo las funciones, no me acabo de aclarar que es lo que hace cada una...
Quiero hacer un programa que mueva un motor por medio del PWM del PIC16F877, ya he empezado hacerlo, pero hay cosas que no entiendo. El compilador que utilizo es el PIC-C Compiler, pero me da error en acda una de las lineas del programa...
Aqui os pongo lo que llevo hasta ahora, seguro que los fallos son por cosas básicas, pero lo estoy aprendiendo por mi cuenta y resulta un poco lioso...
Código:
#include"pic16f877.h" //incluyo la libreria del PIC que se utilizara
#USE DELAY(clock=40000000) //especifico la frecuencia (Hz) a la que trabajara el //reloj
void main()
{
while (1)
{
SET_TRIS_C(11111011); //pongo RC2 como salida de datos
SETUP_CCP1(CCP_PWM); //pongo CCP1 como PWM
SETUP_TIMER_2(T2_DIV_BY_16,255,15); //aqui tengo las dudas
SET_PWM1_DUTY(11111111); //aqui tb ops:
}
}
Segun he entendido (seguramente estare equivocado)
La funcion SETUP_TIMER_2() establece el ciclo de trabajo que envia el PWM. Los valores que he puesto no los acabo de entender...(les he puesto mas o menos a voleo para ver si funcionaba o no)
T2_DIV_BY_16 quiere decir que divide la frecuencia del reloj por 16?
El 255 indica el valor al que llegara el timer y reiniciara la cuenta?
El 15, mas o menos lo tengo claro, es el numero de resets antes de una interrupcion, no?
En la funcion SET_PWM1_DUTY() se indica el ciclo de trabajo del PWM? y eso no se hace ya con la funcion anterior?
Se que estas cosas son basicas, pero no acavo de enterarme...me podriais hechar una mano?
Muchas gracias a todos!
Un saludo!