/*
* File: main.c
* Author: Paul
*
* Created on January 7, 2016, 11:15 AM
*/
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
#include <stdio.h>
#include <stdlib.h>
unsigned int ADCResult=0;
void init_ADC1(void);
void main()
{
OSCCON = 0x46; // set internal oscillator to 1Mhz
TRISA = 0b00000001; // ADC(must be set as input)
TRISB = 0b11111111; // portB as input(the switches)
TRISC = 0b11111000; // set portC as output(RC0 = in1, RC1 = in2, RC2 = pwm)
LATCbits.LATC0 = 1; // motor direction
LATCbits.LATC1 = 0;
PR2 = 0b11111001 ;
T2CON = 0b00000100 ;
CCP1CON = 0b00011100 ;
while(1)
{
ADCResult =0;
ConvertADC();
while(BusyADC()); //Wait here until conversion is finished
ADCResult = ReadADC();
CCPR1L = ADCResult >> 2; // duty
DC1B1 = ADCResult & 0x02; // cycle
DC1B0 = ADCResult & 0x01;
}
}
void init_ADC1(void) //Initialize ADC
{
/**** ADC configured for:
* FOSC/2 as conversion clock
* Result is right justified
* Aquisition time of 2 AD
* Channel 1 for sampling
* ADC interrupt off
* ADC reference voltage from VDD & VSS
*/
OpenADC(ADC_FOSC_2 & ADC_LEFT_JUST & ADC_2_TAD,
ADC_CH0 & ADC_INT_OFF & ADC_REF_VDD_VSS,
ADC_1ANA);
}