Hola a todos, soy nuevo en el foro y en el mundo de los pics tambien
quisiera saber si me pueden ayudar con mi proyecto
El funcionamiento es el siguiente:
Estoy trabajando con el pickit3 el cual me controla 2 servomotores, eso ya lo tengo, pero ahora necesito saber como llegar al segundo paso, necesito que por medio de un valor (numerico) que yo le entro al pic por el puerto RS232 este lo transforme en tiempo que el motor esta andando, es decir si por ejemplo yo ingreso el numero 7, el motor dure 7 segundos encendido.
Les agradeceria muchisimo me pudieran colaborar gracias
ahi les va lo que llevo de codigo
#include "p18f45k20.h"
#include "delays.h"
#include "12 CCP PWM.h" // header file
/** V A R I A B L E S *************************************************/
#pragma idata // declare statically allocated initialized variables
/** D E C L A R A T I O N S *******************************************/
#pragma code // declare executable instructions
void main (void)
{
unsigned char brightness = 125; // = 0x7D
TRISDbits.TRISD7 = 0;
TRISDbits.TRISD6 = 0;
// Set up 8-bit Timer2 to generate the PWM period (frequency)
T2CON = 0b00000111;// Prescale = 1:16, timer on, postscale not used with CCP module
PR2 = 312.5; // Timer 2 Period Register = 250 counts
// Thus, the PWM frequency is:
// 1MHz clock / 4 = 250kHz instruction rate.
// (250kHz / 16 prescale) / 250) = 62.5Hz, a period of 16ms.
// The Duty Cycle is controlled by the ten-bit CCPR1L<7,0>:DC1B1:DC1B0
// 50% Duty Cycle = 0.5 * (250 * 4) = 500
//CCPR1L = 0x19; //10%xxx
//CCPR1L = 0X1E; //12%
//CCPR1L = 0X16; //NEUTRO
CCPR1L = 0X0C; //REVERSA
CCP1CON = 0b01001100;
TRISCbits.TRISC1 = 0;
//CCPR2L = 0x0C; //5%xxx
//CCPR2L = 0X11; //7%
//CCPR2L = 0X16; //NEUTRO
CCPR2L = 0X19; //REVERSA
CCP2CON = 0b00001100;
break
}